import { MatDialogRef, MatDialog } from '@angular/material/dialog';
import { Color } from '@sdcorejs/utils/models';
import * as i0 from '@angular/core';

interface DialogData {
    icon?: string;
    title?: string;
    message?: string;
    yesTitle?: string;
    noTitle?: string;
    yesButtonColor?: Color;
    noButtonColor?: Color;
    input?: {
        placeholder?: string;
        minlength?: number;
        maxlength?: number;
        required?: boolean;
        defaultValue?: string;
    };
    date?: {
        required?: boolean;
        placeholder?: string;
        defaultValue?: string | Date;
        min?: string | Date;
        max?: string | Date;
    };
    radio?: {
        required?: boolean;
        defaultValue?: string | number;
        items: any[];
        valueField: string;
        displayField: string;
        display?: 'row' | 'column';
    };
}
declare class DialogConfirmComponent {
    dialogRef: MatDialogRef<DialogConfirmComponent>;
    data: DialogData;
    value: any;
    required: boolean;
    id: string;
    constructor(dialogRef: MatDialogRef<DialogConfirmComponent>, data: DialogData);
    onCancel: () => void;
    onAccept: () => void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DialogConfirmComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DialogConfirmComponent, "sd-dialog-confirm", never, {}, {}, never, never, true, never>;
}

declare class SdConfirmService {
    #private;
    private dialog;
    constructor(dialog: MatDialog);
    confirm: (message: string, option?: {
        title?: string;
        yesTitle?: string;
        noTitle?: string;
        yesButtonColor?: Color;
        noButtonColor?: Color;
        width?: string;
        disableBackdropClose?: boolean;
    }) => Promise<unknown>;
    withInput: (message?: string, option?: {
        title?: string;
        yesTitle?: string;
        noTitle?: string;
        required?: boolean;
        maxlength?: number;
        yesButtonColor?: Color;
        noButtonColor?: Color;
        defaultValue?: string;
        disableBackdropClose?: boolean;
    }) => Promise<string>;
    withRadio: (message?: string, option?: {
        title?: string;
        yesTitle?: string;
        noTitle?: string;
        required?: boolean;
        yesButtonColor?: Color;
        noButtonColor?: Color;
        defaultValue?: string | number;
        items: any[];
        valueField: string;
        displayField: string;
        display?: "row" | "column";
        disableBackdropClose?: boolean;
    }) => Promise<string>;
    withDate: (message?: string, option?: {
        title?: string;
        yesTitle?: string;
        noTitle?: string;
        required?: boolean;
        yesButtonColor?: Color;
        noButtonColor?: Color;
        defaultValue?: string | Date;
        placeholder?: string;
        disableBackdropClose?: boolean;
    }) => Promise<string>;
    static ɵfac: i0.ɵɵFactoryDeclaration<SdConfirmService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SdConfirmService>;
}

export { DialogConfirmComponent, SdConfirmService };
export type { DialogData };
