/**
 * Region to sample within the image (normalized 0-1 coordinates).
 * Useful for detecting luminance where text will be overlaid,
 * rather than the full image average.
 */
export interface ImageSampleRegion {
    /** Left edge (0 = left, 1 = right) */
    x: number;
    /** Top edge (0 = top, 1 = bottom) */
    y: number;
    /** Width as fraction of image width */
    width: number;
    /** Height as fraction of image height */
    height: number;
}
export interface UseImageModeOptions {
    /**
     * Region to sample. Defaults to the full image.
     * Use normalized coordinates (0-1).
     */
    region?: ImageSampleRegion;
    /**
     * Luminance threshold for the dark/light split.
     * Below this = 'dark', above = 'light'.
     * @default 0.5
     */
    threshold?: number;
    /**
     * Fallback value while loading or on error.
     * @default null
     */
    fallback?: 'dark' | 'light' | null;
}
/**
 * Detect whether an image is predominantly dark or light.
 *
 * Uses OffscreenCanvas to sample the image without interrupting
 * the main render loop. Returns null while loading.
 */
export declare function useImageMode(src: string | null | undefined, options?: UseImageModeOptions): 'dark' | 'light' | null;
//# sourceMappingURL=useImageMode.d.ts.map