import { Service } from 'laravel-jstools-di';
import { ModalContract } from './contracts/ModalContract';
import { ModalDataInterface } from './interfaces/ModalDataInterface';
import { ModalUsageEnum } from './ModalUsageEnum';
import { FormContract } from '../Form/contracts/FormContract';
import { ContextTypeEnum } from '../../types/ContextTypeEnum';
export declare abstract class Modal extends Service implements ModalContract {
    protected serviceDependsList: string[];
    protected modalId: string;
    protected modalData: ModalDataInterface;
    protected modalUsage: ModalUsageEnum;
    protected showNoty: boolean;
    protected form: FormContract | null;
    protected extraSpinners: any;
    protected preloadCallback: any;
    constructor(modalId: string, modalUsage: ModalUsageEnum, modalData: ModalDataInterface, showNoty: boolean);
    protected hasPreload(): boolean;
    private reset;
    getModalData(): ModalDataInterface;
    getForm(): FormContract | null;
    showOverlay(): void;
    hideOverlay(): void;
    showSubmitSpinner(): void;
    hideSubmitSpinner(): void;
    showLoadingSpinner(): void;
    hideLoadingSpinner(): void;
    showExtraSpinners(): void;
    hideExtraSpinners(): void;
    enableButtons(): void;
    disableButtons(): void;
    setPreloadCallback(callback: any): void;
    show(): void;
    setExtraSpinners(spinnerList: any): void;
    private send;
    hide(): void;
    protected onHiddenCallback(): void;
    submit(): void;
    callSubmitCallback(): void;
    setForm(form: FormContract | null): void;
    private prepareElements;
    protected abstract modalShow(): void;
    protected abstract modalHide(): void;
    protected abstract modalShowAlerts(alertList: string[], contextType: ContextTypeEnum): void;
    protected abstract modalClearAlerts(): void;
    protected abstract modalOverlayShow(): void;
    protected abstract modalOverlayHide(): void;
    protected abstract modalSubmitShow(): void;
    protected abstract modalSubmitHide(): void;
    protected abstract modalSubmitSpinnerShow(): void;
    protected abstract modalSubmitSpinnerHide(): void;
    protected abstract modalLoadingSpinnerShow(): void;
    protected abstract modalLoadingSpinnerHide(): void;
    protected abstract modalExtraSpinnerShow(): void;
    protected abstract modalExtraSpinnerHide(): void;
    protected abstract modalButtonsEnable(): void;
    protected abstract modalButtonsDisable(): void;
    protected abstract modalSetTitle(text: string): void;
    protected abstract modalSetSubmitText(text: string): void;
    protected abstract modalSetCancelText(text: string): void;
    protected abstract modalSetBodyCaption(text: string): void;
    protected abstract modalSetBodyText(text: string): void;
}
