import { FpsControlsProps } from './types';

declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<FpsControlsProps>, {
    controlsKeys: () => ({
        name: string;
        key: string;
        action?: undefined;
        actions?: undefined;
    } | {
        name: string;
        action: () => void;
        key?: undefined;
        actions?: undefined;
    } | {
        name: string;
        actions: {
            name: string;
            key: string;
            action: () => void;
        }[];
        key?: undefined;
        action?: undefined;
    })[];
    moveSpeed: number;
    headBobbing: () => {
        active: boolean;
        speed: number;
        amplitude: number;
    };
}>, {
    root: import('vue').ShallowRef<any>;
    models: import('vue').ShallowRef<any>;
    moveMethods: {
        forward: () => void;
        backward: () => void;
        left: () => void;
        right: () => void;
        run: () => void;
        creep: () => void;
        stopCreep: () => void;
        stopRun: () => void;
        stopSideward: () => void;
        stopForward: () => void;
    };
}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    change: (...args: any[]) => void;
    isLock: (...args: any[]) => void;
    state: (...args: any[]) => void;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<FpsControlsProps>, {
    controlsKeys: () => ({
        name: string;
        key: string;
        action?: undefined;
        actions?: undefined;
    } | {
        name: string;
        action: () => void;
        key?: undefined;
        actions?: undefined;
    } | {
        name: string;
        actions: {
            name: string;
            key: string;
            action: () => void;
        }[];
        key?: undefined;
        action?: undefined;
    })[];
    moveSpeed: number;
    headBobbing: () => {
        active: boolean;
        speed: number;
        amplitude: number;
    };
}>>> & {
    onChange?: ((...args: any[]) => any) | undefined;
    onIsLock?: ((...args: any[]) => any) | undefined;
    onState?: ((...args: any[]) => any) | undefined;
}, {
    moveSpeed: number;
    headBobbing: import('./types').IHeadBobbing;
    controlsKeys: import('./types').IControlsKeys[];
}, {}>, {
    default?(_: {}): any;
}>;
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];
} & {};
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
