import type { Color } from '../../types/shared';
interface ImperativeAlertOptions {
    theme?: Color;
    duration?: number;
    closable?: boolean;
}
export interface ImperativeButton {
    theme?: Color;
    secondary?: boolean;
    classes?: string;
    content: string;
    handler?: (e: MouseEvent) => void;
}
export type AlertToastPosition = 'tr' | 'tl' | 'bl' | 'br';
/**
 * `nano-alert` helper to create toast notifications imperatively.
 * @param message - a JS template string e.g. `<h4>Hello</h4> ${aVariable}`
 * @param position - the position of the toast. Options are 'tr', 'tl', 'bl' & 'br'
 * @param icon - name for the `nano-icon`
 * @param alertOptions - { color: Color, duration: number, closable: boolean }
 * @returns `Promise<void>`
 */
export declare function nanoShowToast(message: string, position?: AlertToastPosition, icon?: string, alertOptions?: ImperativeAlertOptions, buttons?: ImperativeButton[]): Promise<HTMLNanoAlertElement>;
/**
 * `nano-alert` helper to create alert notifications imperatively.
 * @param message - a JS template string e.g. `<h4>Hello</h4> ${aVariable}`
 * @param buttons
 * @param label - descriptive label for assitive technology
 * @param icon - name for the `nano-icon`
 * @param alertOptions
 * @returns `Promise<void>`
 */
export declare function nanoShowAlert(message: string, buttons: ImperativeButton[], label: string, icon?: string | undefined, alertOptions?: ImperativeAlertOptions): Promise<HTMLNanoAlertElement>;
export {};
