import { ViewerActionLayout, ViewerState, ViewerToolbarAction } from './symbol';
declare function handleRotate(deg: number, emit?: boolean): void;
declare function toggleFlipX(target?: boolean, emit?: boolean): void;
declare function toggleFlipY(target?: boolean, emit?: boolean): void;
declare function handleZoom(ratio: number, emit?: boolean): void;
declare function toggleFull(isFull?: boolean, emit?: boolean): Promise<void>;
declare function handleReset(emit?: boolean): void;
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<{
        [action: `action-${string}`]: (params: {
            state: ViewerState;
        }) => any;
        default: (params: {
            state: ViewerState;
        }) => any;
    }> & {
        [action: `action-${string}`]: (params: {
            state: ViewerState;
        }) => any;
        default: (params: {
            state: ViewerState;
        }) => any;
    };
    refs: {
        viewer: HTMLDivElement;
        container: HTMLDivElement;
        transition: HTMLDivElement;
    };
    rootEl: HTMLDivElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    inherit: import('vue').PropType<boolean>;
    locale: import('vue').PropType<Partial<{
        rotateRight: string;
        rotateLeft: string;
        flipHorizontal: string;
        flipVertical: string;
        zoomIn: string;
        zoomOut: string;
        fullScreen: string;
        fullScreenExit: string;
        reset: string;
    }>>;
    width: import('vue').PropType<string | number>;
    height: import('vue').PropType<string | number>;
    moveDisabled: import('vue').PropType<boolean>;
    zoomDisabled: import('vue').PropType<boolean>;
    zoomDelta: import('vue').PropType<number>;
    zoomMin: import('vue').PropType<number>;
    zoomMax: import('vue').PropType<number>;
    flipDisabled: import('vue').PropType<boolean>;
    rotateDisabled: import('vue').PropType<boolean>;
    rotateDelta: import('vue').PropType<number>;
    fullDisabled: import('vue').PropType<boolean>;
    toolbarPlacement: import('vue').PropType<"bottom" | "top" | "right" | "left" | "bottom-start" | "bottom-end" | "top-start" | "top-end" | "right-start" | "right-end" | "left-start" | "left-end">;
    actions: import('vue').PropType<ViewerToolbarAction[]>;
    toolbarFade: import('vue').PropType<number | boolean>;
    noTransition: import('vue').PropType<boolean>;
    centerScale: import('vue').PropType<boolean>;
    actionLayout: import('vue').PropType<ViewerActionLayout>;
    onMoveStart: import('vue').PropType<((state: ViewerState) => void) | ((state: ViewerState) => void)[]>;
    onMove: import('vue').PropType<((state: ViewerState) => void) | ((state: ViewerState) => void)[]>;
    onMoveEnd: import('vue').PropType<((state: ViewerState) => void) | ((state: ViewerState) => void)[]>;
    onWheel: import('vue').PropType<((sign: 1 | -1, state: ViewerState) => void) | ((sign: 1 | -1, state: ViewerState) => void)[]>;
    onRotate: import('vue').PropType<((deg: number, state: ViewerState) => void) | ((deg: number, state: ViewerState) => void)[]>;
    onFlipX: import('vue').PropType<((flip: boolean, state: ViewerState) => void) | ((flip: boolean, state: ViewerState) => void)[]>;
    onFlipY: import('vue').PropType<((flip: boolean, state: ViewerState) => void) | ((flip: boolean, state: ViewerState) => void)[]>;
    onZoom: import('vue').PropType<((zoom: number, state: ViewerState) => void) | ((zoom: number, state: ViewerState) => void)[]>;
    onFull: import('vue').PropType<((full: boolean, state: ViewerState) => void) | ((full: boolean, state: ViewerState) => void)[]>;
    onReset: import('vue').PropType<((state: ViewerState) => void) | ((state: ViewerState) => void)[]>;
}>, {
    moving: import('vue').ComputedRef<boolean>;
    fullSupported: boolean;
    state: ViewerState;
    viewer: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
    container: import('vue').Ref<HTMLElement | null | undefined, HTMLElement | null | undefined>;
    transition: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
    handleRotate: typeof handleRotate;
    toggleFlipHorizontal: typeof toggleFlipX;
    toggleFlipVertical: typeof toggleFlipY;
    handleZoom: typeof handleZoom;
    toggleFull: typeof toggleFull;
    handleReset: typeof handleReset;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    inherit: import('vue').PropType<boolean>;
    locale: import('vue').PropType<Partial<{
        rotateRight: string;
        rotateLeft: string;
        flipHorizontal: string;
        flipVertical: string;
        zoomIn: string;
        zoomOut: string;
        fullScreen: string;
        fullScreenExit: string;
        reset: string;
    }>>;
    width: import('vue').PropType<string | number>;
    height: import('vue').PropType<string | number>;
    moveDisabled: import('vue').PropType<boolean>;
    zoomDisabled: import('vue').PropType<boolean>;
    zoomDelta: import('vue').PropType<number>;
    zoomMin: import('vue').PropType<number>;
    zoomMax: import('vue').PropType<number>;
    flipDisabled: import('vue').PropType<boolean>;
    rotateDisabled: import('vue').PropType<boolean>;
    rotateDelta: import('vue').PropType<number>;
    fullDisabled: import('vue').PropType<boolean>;
    toolbarPlacement: import('vue').PropType<"bottom" | "top" | "right" | "left" | "bottom-start" | "bottom-end" | "top-start" | "top-end" | "right-start" | "right-end" | "left-start" | "left-end">;
    actions: import('vue').PropType<ViewerToolbarAction[]>;
    toolbarFade: import('vue').PropType<number | boolean>;
    noTransition: import('vue').PropType<boolean>;
    centerScale: import('vue').PropType<boolean>;
    actionLayout: import('vue').PropType<ViewerActionLayout>;
    onMoveStart: import('vue').PropType<((state: ViewerState) => void) | ((state: ViewerState) => void)[]>;
    onMove: import('vue').PropType<((state: ViewerState) => void) | ((state: ViewerState) => void)[]>;
    onMoveEnd: import('vue').PropType<((state: ViewerState) => void) | ((state: ViewerState) => void)[]>;
    onWheel: import('vue').PropType<((sign: 1 | -1, state: ViewerState) => void) | ((sign: 1 | -1, state: ViewerState) => void)[]>;
    onRotate: import('vue').PropType<((deg: number, state: ViewerState) => void) | ((deg: number, state: ViewerState) => void)[]>;
    onFlipX: import('vue').PropType<((flip: boolean, state: ViewerState) => void) | ((flip: boolean, state: ViewerState) => void)[]>;
    onFlipY: import('vue').PropType<((flip: boolean, state: ViewerState) => void) | ((flip: boolean, state: ViewerState) => void)[]>;
    onZoom: import('vue').PropType<((zoom: number, state: ViewerState) => void) | ((zoom: number, state: ViewerState) => void)[]>;
    onFull: import('vue').PropType<((full: boolean, state: ViewerState) => void) | ((full: boolean, state: ViewerState) => void)[]>;
    onReset: import('vue').PropType<((state: ViewerState) => void) | ((state: ViewerState) => void)[]>;
}>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
    viewer: HTMLDivElement;
    container: HTMLDivElement;
    transition: HTMLDivElement;
}, HTMLDivElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
