@snap/camera-kit
Version:
Camera Kit Web
48 lines • 1.73 kB
TypeScript
import type { Uri, UriCancelRequest, UriRequest, UriResponse } from "../lens-core-module/generated-types";
import type { Lens } from "../lens/Lens";
export declare function extractSchemeAndRoute(uri: Uri): {
scheme: string;
route: string;
};
export declare function isUriHandlers(value: unknown): value is UriHandlers;
export declare function isUriResponse(value: unknown): value is UriResponse;
/**
* Provides a way for a lens to call into external services that work under HTTP-like protocol.
* @internal
*/
export interface UriHandler {
/**
* [scheme]://[route] pattern that this handler processes or an array of patterns.
*/
uri: Uri | Uri[];
/**
* Called to process the provided request.
* @param request Lens request.
* @param reply A callback function to send response back.
* The function can be called none or multiple number of times.
* @param lens Lens the request is coming from.
*/
handleRequest(request: UriRequest, reply: (response: UriResponse) => void, lens: Lens): void;
/**
* Called to indicated that URI request initated earlier is cancelled.
* @param request Lens request.
* @param lens Lens the request is coming from.
*/
cancelRequest?(request: UriCancelRequest, lens: Lens): void;
}
/**
* Array of {@link UriHandler} objects.
* @internal
*/
export type UriHandlers = UriHandler[];
/**
* An extension point for client URI handlers.
* @internal
*/
export declare const uriHandlersFactory: {
(): UriHandlers;
token: "UriHandlers";
dependencies: [];
};
export { Uri, UriCancelRequest, UriRequest, UriResponse } from "../lens-core-module/generated-types";
//# sourceMappingURL=UriHandlers.d.ts.map