import { SettingsTab } from '../../components/ConfigDialog/context';
import { AcceptParticipationDialogConfig } from '../../components/AcceptParticipationDialog/types';

export type NotifySeverity = 'info' | 'success' | 'warn' | 'error';
export type AlertDialogProps = {
    header?: string;
    message: string;
};
export type ConfirmDialogProps = {
    header?: string;
    message: string;
    onAccept: () => void;
};
export type ConfirmWithAlternativeDialogProps = {
    header?: string;
    message: string;
    confirmLabel: string;
    alternativeLabel: string;
    onConfirm: () => void | Promise<void>;
    onAlternative: () => void | Promise<void>;
};
export type NotifyProps = {
    header?: string;
    message: string;
    severity?: NotifySeverity;
    clear?: boolean;
};
export type DialogsContextType = {
    configDialogVisible: {
        visible: boolean;
        tab: SettingsTab;
    };
    toggleConfigDialog: ({ tab }: {
        tab?: SettingsTab;
    }) => void;
    acceptParticipationDialogVisible: boolean;
    acceptParticipationDialogConfig: AcceptParticipationDialogConfig | null;
    toggleAcceptParticipationDialog: (config?: AcceptParticipationDialogConfig) => void;
    notify: (props: NotifyProps) => void;
    alert: (props: AlertDialogProps) => void;
    confirm: (props: ConfirmDialogProps) => void;
    confirmWithAlternative: (props: ConfirmWithAlternativeDialogProps) => void;
};
export declare const DialogsContext: import('react').Context<DialogsContextType | null>;
export declare const useDialogsContext: () => DialogsContextType;
