import { IconDefinition, IconPack } from '@fortawesome/fontawesome-svg-core';
import { MessageOptions } from '../../models/message-options';
export declare class Root {
    #private;
    private el;
    mode?: 'default' | 'bucket';
    private _fab;
    private _messageQueue;
    private handleSlotChange;
    accent(name: string, colors?: string, mix?: string): Promise<string | void>;
    alert(title: string, message: string, options?: AlertOptions): Promise<void>;
    confirm(title: string, message: string, options?: ConfirmOptions): Promise<boolean>;
    execute<T>(el: HTMLElement, exec: Executor<T>, options?: ExecuteOptions): Promise<T>;
    success(text: string, options?: Partial<MessageOptions>): Promise<void>;
    error(text: string, options?: Partial<MessageOptions>): Promise<void>;
    warning(text: string, options?: Partial<MessageOptions>): Promise<void>;
    info(text: string, options?: Partial<MessageOptions>): Promise<void>;
    message(text: string, options?: Partial<MessageOptions>): Promise<void>;
    addIcon(...definitions: (IconDefinition | IconPack)[]): Promise<void>;
    private messageCheck;
    private messageTimeout;
    componentWillLoad(): void;
    componentDidLoad(): void;
    renderMessage(): any;
    render(): any;
}
export interface AlertOptions {
    readonly required?: boolean;
    readonly ok?: string | false;
}
export interface ConfirmOptions {
    readonly required?: boolean;
    readonly cancel?: string;
    readonly ok?: string | false;
}
export interface ExecuteOptions {
    readonly display?: boolean;
}
export declare type Executor<T> = (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => Promise<any> | void;
