@snap/camera-kit
Version:
Camera Kit Web
37 lines • 1.46 kB
TypeScript
import type { Lens } from "../lens/Lens";
import type { LensState } from "../session/lensState";
import type { SessionState } from "../session/sessionState";
import type { Uri, UriHandler, UriRequest, UriResponse } from "./UriHandlers";
export type UriRequestEvent = {
request: UriRequest;
reply: (response: UriResponse) => void;
lens: Lens;
};
/**
* Represents a Remote API request cancellation handler function.
*/
export type RemoteApiCancelRequestHandler = () => void;
export type CreateLensRequestState<State> = (request: UriRequest, lens: Lens) => State;
export type ProcessRequest<State> = (input: {
request: UriRequest;
reply: (response: UriResponse) => void;
lens: Lens;
setCancellationHandler: (fn: () => void) => void;
state: State;
}) => void;
export type ProcessError = (error: Error) => void;
/**
* Creates a UriHandler for the provided URI.
* Handles lens and sessions state events, so provides clear abstraction for internal usages.
*
* @internal
*/
export declare function createUriRequestProcessor<State = undefined>({ uri, lensState, sessionState, createLensRequestState, processRequest, processInternalError, }: {
uri: Uri | Uri[];
lensState: LensState;
sessionState: SessionState;
createLensRequestState?: CreateLensRequestState<State>;
processRequest: ProcessRequest<State>;
processInternalError: ProcessError;
}): UriHandler;
//# sourceMappingURL=uriRequestProcessor.d.ts.map