/** * Where a face sits in the frame, as a fraction of width and height; 0.5, 0.5 is centre. * Normalised rather than in pixels because the receiver's tile is a different size. */ export type Framing = { x: number; y: number; }; export declare const CENTRED: Framing; /** Below this, the detection is not trusted enough to move anyone's crop. */ export declare const MIN_CONFIDENCE = 0.5; /** * How many samples have to find a face before the crop may move. One detection scraping * past MIN_CONFIDENCE is not enough; the cost of being wrong is everybody's view. */ export declare const MIN_SAMPLES = 3; /** One frame's answer: where the largest face was, and how sure the model was. */ export type FramingSample = Framing & { score: number; }; export declare function combineSamples(samples: readonly FramingSample[]): Framing | null; export declare function detectFraming(stream: MediaStream | null | undefined): Promise;