import { VNode } from 'vue';
import { BxButtonProps } from '../BxButton.vue';
export type PopupCreationOptions = {
    type?: 'layer' | 'frame';
    title?: string | (() => VNode[]);
    header?: () => VNode[];
    closeBtn?: () => VNode[];
    closeable?: boolean;
    icon?: () => VNode;
    content: string | (() => VNode[]);
    positiveText?: string;
    negativeText?: string;
    actions?: {
        label: string;
        icon: () => VNode;
        props: Partial<BxButtonProps>;
    }[] | (() => VNode[]);
    disableBackgroundEffect?: boolean;
    customClasses?: string[];
    wrapperCustomClasses?: string[];
    fullLayer?: boolean;
    transculent?: boolean;
    capturedContext?: Record<string | symbol, any>;
};
export type MessageCreateOptions = {
    type: 'success' | 'error' | 'warning' | 'info';
    title?: string | (() => VNode[]);
    message?: string | (() => VNode[]);
    closeable?: boolean;
    icon?: () => VNode[];
    actions?: {
        label: string;
        icon: () => VNode;
        props: Partial<BxButtonProps>;
    }[] | (() => VNode[]);
    closeAfter?: number;
    customClasses?: string[];
    wrapperCustomClasses?: string[];
    darkenBackground?: boolean;
    maxWidth?: string;
    capturedContext?: Record<string | symbol, any>;
};
export declare function createMessage(opts: MessageCreateOptions): {
    show: import("vue").WritableComputedRef<boolean, boolean>;
};
export declare function createPopup(opts: PopupCreationOptions): {
    close: () => void;
};
/**
 * Composable für Popup-Erstellung innerhalb von Vue Components
 * Captured automatisch den aktuellen Context
 */
export declare function usePopup(): {
    createPopup: (opts: Omit<PopupCreationOptions, 'capturedContext'>) => {
        close: () => void;
    };
    createMessage: (opts: Omit<MessageCreateOptions, 'capturedContext'>) => {
        show: import("vue").WritableComputedRef<boolean, boolean>;
    };
};
//# sourceMappingURL=usePopup.d.ts.map