import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
export interface Photo {
    id: string | number;
    url: string;
    name?: string;
    gender?: string;
    [key: string]: any;
}
type __VLS_Props = {
    photos: Photo[];
    shapes?: ('wall' | 'cube' | 'sphere')[];
    autoSwitch?: boolean;
    switchInterval?: number;
    transitionDuration?: number;
    transitionStyle?: 'smooth' | 'scatter';
    scatterRadius?: number;
    autoShow?: boolean;
    autoShowInterval?: number;
    showDuration?: number;
    spotlightScale?: number;
    autoRotate?: boolean;
    rotateSpeed?: number;
    enableZoom?: boolean;
    enablePan?: boolean;
    photoWidth?: number;
    photoHeight?: number;
    wallCols?: number;
    selectedIndex?: number | null;
    backgroundColor?: string;
    photoEmissive?: string;
};
declare function manualClose(): void;
declare function switchToShape(shape: string): void;
declare function nextSpotlight(): void;
declare function pauseAutoShow(): void;
declare function resumeAutoShow(): void;
declare function focusPhoto(index: number, isAuto?: boolean): void;
declare function clearSelection(): void;
declare function resetCamera(): void;
declare const _default: __VLS_WithSlots< DefineComponent<__VLS_Props, {
    focusPhoto: typeof focusPhoto;
    clearSelection: typeof clearSelection;
    switchToShape: typeof switchToShape;
    resetCamera: typeof resetCamera;
    nextSpotlight: typeof nextSpotlight;
    pauseAutoShow: typeof pauseAutoShow;
    resumeAutoShow: typeof resumeAutoShow;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
    select: (photo: Photo, index: number) => any;
    autoShow: (photo: Photo, index: number) => any;
    deselect: (photo: Photo, index: number) => any;
    autoHide: (photo: Photo, index: number) => any;
    shapeChange: (shape: string) => any;
    "update:selectedIndex": (value: number | null) => any;
}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
    onSelect?: ((photo: Photo, index: number) => any) | undefined;
    onAutoShow?: ((photo: Photo, index: number) => any) | undefined;
    onDeselect?: ((photo: Photo, index: number) => any) | undefined;
    onAutoHide?: ((photo: Photo, index: number) => any) | undefined;
    onShapeChange?: ((shape: string) => any) | undefined;
    "onUpdate:selectedIndex"?: ((value: number | null) => any) | undefined;
}>, {
    backgroundColor: string;
    transitionDuration: number;
    autoRotate: boolean;
    shapes: ("wall" | "cube" | "sphere")[];
    autoSwitch: boolean;
    switchInterval: number;
    transitionStyle: "smooth" | "scatter";
    scatterRadius: number;
    autoShow: boolean;
    autoShowInterval: number;
    showDuration: number;
    spotlightScale: number;
    rotateSpeed: number;
    enableZoom: boolean;
    enablePan: boolean;
    photoWidth: number;
    photoHeight: number;
    wallCols: number;
    selectedIndex: number | null;
    photoEmissive: string;
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>, {
    default?: ((props: {
        photo: Photo | null;
        visible: boolean;
        close: typeof manualClose;
    }) => any) | undefined;
}>;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
