import { Context, ReactNode } from 'react';
export interface ImageCoordinatorProps {
    /** Children within the ImageCoordinator. */
    children: ReactNode;
    /**
     * Time in milliseconds after which images are always displayed, even if all images are not yet loaded.
     * @default 5000
     */
    timeout?: number;
    /**
     * A group of images to coordinate between, matching the group passed to the `<Image>` component.
     * If not provided, the default image group is used.
     */
    group?: ImageGroup;
}
export type ImageGroup = Context<ImageGroupValue>;
interface ImageGroupValue {
    revealAll: boolean;
    register(url: string): void;
    unregister(url: string): void;
    load(url: string): void;
}
export declare const DefaultImageGroup: ImageGroup;
export declare function createImageGroup(): ImageGroup;
/**
 * An ImageCoordinator coordinates loading behavior for a group of images.
 * Images within an ImageCoordinator are revealed together once all of them have loaded.
 */
export declare function ImageCoordinator(props: ImageCoordinatorProps): ReactNode;
export {};
