Files
react-native/packages/react-native/Libraries/Interaction/InteractionManager.d.ts
T
Ruslan Lesiutin 714b502b0c | RN Monorepo | Migrate to package (#36434)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/36434

Changelog: [Internal]

This is a squashed stack of 18 commits, starting from D43202126

allow-large-files

Reviewed By: cortinico

Differential Revision: D43977381

fbshipit-source-id: 0da552ddb85f2f61a0be0ef071915b35f3f8555c
2023-03-17 05:03:25 -07:00

75 lines
2.0 KiB
TypeScript

/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
import {EmitterSubscription} from '../vendor/emitter/EventEmitter';
export type Handle = number;
export type SimpleTask = {
name: string;
gen: () => void;
};
export type PromiseTask = {
name: string;
gen: () => Promise<any>;
};
export interface InteractionManagerStatic {
Events: {
interactionStart: string;
interactionComplete: string;
};
/**
* Adds a listener to be invoked when events of the specified type are
* emitted. An optional calling context may be provided. The data arguments
* emitted will be passed to the listener function.
*
* @param eventType - Name of the event to listen to
* @param listener - Function to invoke when the specified event is
* emitted
* @param context - Optional context object to use when invoking the
* listener
*/
addListener(
eventType: string,
listener: (...args: any[]) => any,
context?: any,
): EmitterSubscription;
/**
* Schedule a function to run after all interactions have completed.
* Returns a cancellable
*/
runAfterInteractions(task?: (() => any) | SimpleTask | PromiseTask): {
then: (onfulfilled?: () => any, onrejected?: () => any) => Promise<any>;
done: (...args: any[]) => any;
cancel: () => void;
};
/**
* Notify manager that an interaction has started.
*/
createInteractionHandle(): Handle;
/**
* Notify manager that an interaction has completed.
*/
clearInteractionHandle(handle: Handle): void;
/**
* A positive number will use setTimeout to schedule any tasks after
* the eventLoopRunningTime hits the deadline value, otherwise all
* tasks will be executed in one setImmediate batch (default).
*/
setDeadline(deadline: number): void;
}
export const InteractionManager: InteractionManagerStatic;