import type { InjectionKey } from 'vue';
export type LightboxMediaType = 'image' | 'video';
export type LightboxItem = {
    src: string;
    type?: LightboxMediaType;
    alt?: string;
    title?: string;
    /** Poster image for video items. */
    poster?: string;
};
export type LightboxItemInput = string | LightboxItem;
export type LightboxOpenOptions = {
    items: LightboxItemInput[];
    index?: number;
    loop?: boolean;
    maskClosable?: boolean;
    onShow?: () => void;
    onHide?: () => void;
};
export type LightboxState = {
    visible: boolean;
    items: LightboxItem[];
    index: number;
    loop: boolean;
    maskClosable: boolean;
};
export type LightboxApi = {
    open: (options: LightboxOpenOptions) => void;
    close: () => void;
    readonly isOpen: boolean;
};
export declare const LIGHTBOX_KEY: InjectionKey<LightboxApi>;
