import * as vue from 'vue';
import { PropType, ExtractPropTypes, Plugin } from 'vue';

interface KeycodeData {
    keycode: number;
    name: string[];
}
declare const props: {
    /**
     * Active keys
     */
    keycode: PropType<number[]>;
    /**
     * Disabled keycode events
     */
    disabled: {
        type: BooleanConstructor;
        default: undefined;
    };
};
declare const EventKey: Readonly<{
    KeycodeDown: "keycodeDown";
    KeycodeUp: "keycodeUp";
    /**
     * suport `v-model:keycode`
     */
    KeycodeUpdate: "update:keycode";
}>;
type Props = ExtractPropTypes<typeof props>;
declare const emits: {
    "update:keycode": (keycode: number[]) => boolean;
    keycodeDown: (keycodeData: KeycodeData) => boolean;
    keycodeUp: (keycodeData: KeycodeData) => boolean;
};
type Emits = typeof emits;

declare const MacKeyboard: vue.DefineComponent<vue.ExtractPropTypes<{
    keycode: vue.PropType<number[]>;
    disabled: {
        type: BooleanConstructor;
        default: undefined;
    };
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
    "update:keycode": (keycode: number[]) => boolean;
    keycodeDown: (keycodeData: KeycodeData) => boolean;
    keycodeUp: (keycodeData: KeycodeData) => boolean;
}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    keycode: vue.PropType<number[]>;
    disabled: {
        type: BooleanConstructor;
        default: undefined;
    };
}>> & Readonly<{
    onKeycodeDown?: ((keycodeData: KeycodeData) => any) | undefined;
    onKeycodeUp?: ((keycodeData: KeycodeData) => any) | undefined;
    "onUpdate:keycode"?: ((keycode: number[]) => any) | undefined;
}>, {
    disabled: boolean;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const keycodeDataList: KeycodeData[];

declare const plugin: Plugin;

export { EventKey, MacKeyboard, plugin as default, emits, keycodeDataList, plugin, props };
export type { Emits, KeycodeData, Props };
