/// <reference types="react" />
import { ToastAction, ToastVariants, ToastActionType } from '../Toast/types';
import { DefaultAttributes } from '../../types';
export declare type MessageContextType = {
    compact: MessageMethods;
    default: MessageMethods;
} & MessageMethods;
export declare type MessageMethods = {
    clear: () => void;
    custom: (message: string, options?: Partial<MessageOptions>) => void;
    error: (message: string, options?: Partial<MessageOptions>) => void;
    info: (message: string, options?: Partial<MessageOptions>) => void;
    success: (message: string, options?: Partial<MessageOptions>) => void;
    warning: (message: string, options?: Partial<MessageOptions>) => void;
};
export declare type MessagePosition = 'bottom' | 'bottom-left' | 'bottom-right' | 'top' | 'top-left' | 'top-right';
export declare type ToastType = 'compact' | 'default';
declare type BaseOptions = DefaultAttributes & {
    action: ToastActionType;
    autoHideDuration: number;
    toastType: ToastType;
};
export declare type ProviderOptions = BaseOptions & {
    position: MessagePosition;
    zIndex?: number;
};
export declare type MessageOptions = BaseOptions & {
    variant: ToastVariants;
    icon?: React.ReactNode;
    primaryAction?: ToastAction;
    dismissAction?: ToastAction;
};
export declare type Message = {
    id: string;
    message: string;
    onClose: () => void;
} & MessageOptions;
export declare type MessageAction = {
    type: 'add';
    message: Message;
} | {
    type: 'remove';
    messageId: string;
} | {
    type: 'clear';
};
export {};
