import { PropType, ExtractPropTypes, ComponentOptions, FunctionalComponent } from 'vue';
import { AllColorsVariant } from '../../types/ColorVariants';
export declare type MessageSize = 'is-small' | 'is-medium' | 'is-large' | '';
export declare type MessageIcons = {
    [K in AllColorsVariant]: ComponentOptions | FunctionalComponent;
};
export declare function getMessageIcons(icons: Partial<MessageIcons>): {
    ""?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-black-ter"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-orange"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-primary"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-info"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-link"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-success"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-warning"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-danger"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-white"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-black"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-light"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-dark"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-black-bis"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-grey-darker"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-grey-dark"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-grey"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-grey-light"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-grey-lighter"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-white-ter"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
    "is-white-bis"?: FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined;
};
export declare const UseMessagePropsDefinition: {
    title: {
        type: PropType<string>;
    };
    isClosable: {
        type: BooleanConstructor;
        default: boolean;
    };
    message: {
        type: PropType<string>;
    };
    variant: {
        type: PropType<AllColorsVariant>;
        default: "";
    };
    size: {
        type: PropType<import("../..").SizeVariant>;
        default: "";
    };
    iconSize: {
        type: PropType<import("../..").SizeVariant>;
        default: "";
    };
    useAutoClose: {
        type: PropType<boolean>;
        default: boolean;
    };
    duration: {
        type: PropType<number>;
        default: number;
    };
    useIcon: {
        type: PropType<boolean>;
        default: boolean;
    };
    icons: {
        type: PropType<Partial<MessageIcons>>;
        default: import("fp-ts/lib/function").Lazy<Partial<MessageIcons>>;
    };
    icon: {
        type: PropType<FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any>>;
    };
    onToggle: {
        type: PropType<import("fp-ts/lib/function").FunctionN<[boolean], void>>;
        required: false;
    };
    onSetOn: {
        type: PropType<import("fp-ts/lib/IO").IO<void>>;
        required: false;
    };
    onSetOff: {
        type: PropType<import("fp-ts/lib/IO").IO<void>>;
        required: false;
    };
    isActive: {
        type: PropType<boolean>;
        default: boolean;
    };
    hasPopup: {
        type: PropType<boolean>;
        default: boolean;
    };
};
export declare type UseMessageProps = ExtractPropTypes<typeof UseMessagePropsDefinition>;
export declare function useMessage(props: UseMessageProps): {
    icon: import("vue").ComputedRef<FunctionalComponent<{}, {}> | ComponentOptions<{}, any, any, any, any, any, any, any> | undefined>;
    iconSize: import("vue").ComputedRef<"is-small" | "is-medium" | "is-large">;
    setAutoClose: () => void;
    isOn: import("vue").WritableComputedRef<boolean>;
    isOff: import("vue").ComputedRef<boolean>;
    attrs: import("vue").ComputedRef<{
        'aria-haspopup'?: boolean;
        tabindex: number;
        role: string;
        type: string;
        'aria-pressed': boolean;
        'aria-expanded': boolean;
    }>;
    listeners: {
        onClick: import("fp-ts/lib/IO").IO<void>;
        onKeydown: (e: KeyboardEvent) => void;
    };
    props: import("vue").ComputedRef<{
        onClick: import("fp-ts/lib/IO").IO<void>;
        onKeydown: (e: KeyboardEvent) => void;
        'aria-haspopup'?: boolean;
        tabindex: number;
        role: string;
        type: string;
        'aria-pressed': boolean;
        'aria-expanded': boolean;
    }>;
    setOn: (e?: Event | undefined) => void;
    setOff: (e?: Event | undefined) => void;
    toggle: (e?: Event | undefined) => void;
};
export declare type Message = ReturnType<typeof useMessage>;
