import { INSPanelSetting, INSPanelToolBarDetails } from "../ns-panel/interfaces";
export type MessageBoxComponentRef = (() => void);
export interface INSMessageBoxCallbackFunction {
    (event: any): void;
}
export interface INSMessageBoxConfirmButtonSetting {
    label?: string;
    cssClass?: string;
    parentCssClass?: string;
    horizontalAlign?: string;
    initialStyle?: any;
    callback?: INSMessageBoxCallbackFunction;
}
export interface INSMessageBoxToolBarDetails extends INSPanelToolBarDetails {
    messageBody?: string;
    messageFooter?: string;
    messageFooterLeft?: string;
    messageFooterRight?: string;
}
export interface INSMessageBoxBodyComponent {
    init?(data: any): Promise<any> | void;
    getElement(): HTMLElement;
    elementAdded?(): void;
    destroy?(): void;
}
export interface INSMessageBoxSetting extends INSPanelSetting {
}
export interface INSMessageBoxAlertSetting extends INSMessageBoxSetting {
    bodyContent?: any;
    bodyTemplate?: string;
    bodyTemplateUrl?: string;
    buttonLabel?: string;
    buttonClass?: string;
    parentClass?: string;
    horizontalAlign?: string;
    callback?: INSMessageBoxCallbackFunction;
}
export interface INSMessageBoxConfirmSetting extends INSMessageBoxSetting {
    bodyContent?: any;
    bodyTemplate?: string;
    bodyTemplateUrl?: string;
    confirm?: INSMessageBoxConfirmButtonSetting;
    cancel?: INSMessageBoxConfirmButtonSetting;
}
export interface INSMessageBoxCustomSetting extends INSMessageBoxSetting {
    bodyContent?: any;
    bodyTemplate?: string;
    bodyTemplateUrl?: string;
    bodyComponent?: any;
    bodyComponentData?: any;
    buttons?: INSMessageBoxConfirmButtonSetting[];
}
