import type { HTMLAttributes, ReactNode } from 'react';
import type { StyleProp } from '@vtex/admin-ui-core';
export interface ToastAction {
    /**
     * Action Button Label
     */
    label: string;
    /**
     * Action Button on click event
     */
    onClick: () => void;
}
export interface InternalToast extends Toast {
    /**
     * Toast's Id
     */
    id: string;
    /**
     * Key to avoid Toast's duplication on the queue.
     */
    dedupeKey: string;
    /**
     * Whether the Toast should be removed from the queue or not.
     */
    shouldRemove: boolean;
}
export interface Toast extends HTMLAttributes<HTMLDivElement> {
    /**
     * Toast's key
     */
    key?: string;
    /**
     * Message displayed to the end-user.
     */
    message: ReactNode;
    /**
     * The toast's tone.
     * @default info
     */
    tone?: 'critical' | 'info' | 'positive' | 'warning';
    /**
     * Whether the toast can be dismissed or not.
     * @default false
     */
    dismissible?: boolean;
    /**
     * Toast's Action Button props.
     */
    action?: ToastAction;
    /**
     * How long the toast should be apparent, in milliseconds.
     * @default 10000
     */
    duration?: number;
    /**
     * `csx` properties
     * @default {}
     */
    csx?: StyleProp;
}
