import { Camera } from 'three';

export interface PointerLockControlsProps {
    /**
     * Whether to make this the default controls.
     *
     * @default false
     * @type {boolean}
     * @memberof PointerLockControlsProps
     * @see https://threejs.org/docs/index.html?q=pointe#examples/en/controls/PointerLockControls
     */
    makeDefault?: boolean;
    /**
     * The camera to control.
     *
     * @default false
     * @type {boolean}
     * @memberof PointerLockControlsProps
     * @see https://threejs.org/docs/index.html?q=pointe#examples/en/controls/PointerLockControls
     */
    camera?: Camera;
    /**
     * The dom element to listen to.
     *
     * @type {HTMLElement}
     * @memberof PointerLockControlsProps
     * @see https://threejs.org/docs/index.html?q=pointe#examples/en/controls/PointerLockControls
     */
    domElement?: HTMLElement;
    /**
     * The trigger id.
     *
     * @type {string}
     * @memberof PointerLockControlsProps
     * @see https://threejs.org/docs/index.html?q=pointe#examples/en/controls/PointerLockControls
     */
    selector?: string;
}
declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<PointerLockControlsProps>, {
    makeDefault: boolean;
}>, {
    value: import('vue').Ref<(import('three').EventDispatcher<{}> & {
        enabled: boolean;
    }) | null>;
}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    change: (...args: any[]) => void;
    isLock: (...args: any[]) => void;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<PointerLockControlsProps>, {
    makeDefault: boolean;
}>>> & {
    onChange?: ((...args: any[]) => any) | undefined;
    onIsLock?: ((...args: any[]) => any) | undefined;
}, {
    makeDefault: boolean;
}, {}>;
export default _default;
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
type __VLS_TypePropsToRuntimeProps<T> = {
    [K in keyof T]-?: {} extends Pick<T, K> ? {
        type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
    } : {
        type: import('vue').PropType<T[K]>;
        required: true;
    };
};
type __VLS_WithDefaults<P, D> = {
    [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
        default: D[K];
    }> : P[K];
};
type __VLS_Prettify<T> = {
    [K in keyof T]: T[K];
} & {};
