import { AfterViewInit, ElementRef, EventEmitter, Injector, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
import { BehaviorSubject, Observable, Subscription } from 'rxjs';
import { DialogService } from '../../../services/dialog.service';
import { NavigationService } from '../../../services/navigation.service';
import { SnackBarService } from '../../../services/snackbar.service';
import { OPermissions } from '../../../types/o-permissions.type';
import { OFormBase } from '../o-form-base.class';
import * as i0 from "@angular/core";
export declare const DEFAULT_INPUTS_O_FORM_TOOLBAR: string[];
export declare const DEFAULT_OUTPUTS_O_FORM_TOOLBAR: string[];
export declare class OFormToolbarComponent implements OnInit, OnDestroy, AfterViewInit {
    private _form;
    element: ElementRef;
    protected injector: Injector;
    labelHeader: string;
    headeractions: string;
    labelHeaderAlign: string;
    showHeaderActionsText: boolean;
    showHeaderNavigation: boolean;
    formActions: string[];
    isDetail: boolean;
    showBackButton: string;
    protected backButtonModes: string[] | null;
    protected backButtonAlways: boolean;
    protected backButtonNever: boolean;
    editMode: boolean;
    insertMode: boolean;
    initialMode: boolean;
    refreshBtnEnabled: boolean;
    insertBtnEnabled: boolean;
    deleteBtnEnabled: boolean;
    breadContainer: ViewContainerRef;
    onCancel: EventEmitter<null>;
    isSaveBtnEnabled: Observable<boolean>;
    isEditBtnEnabled: Observable<boolean>;
    existsChangesToSave: Observable<boolean>;
    get changesToSave(): boolean;
    set changesToSave(val: boolean);
    protected _changesToSave: boolean;
    get editBtnEnabled(): boolean;
    set editBtnEnabled(value: boolean);
    protected _editBtnEnabled: boolean;
    get saveBtnEnabled(): boolean;
    set saveBtnEnabled(value: boolean);
    protected _saveBtnEnabled: boolean;
    protected _dialogService: DialogService;
    protected _navigationService: NavigationService;
    protected mutationObservers: MutationObserver[];
    protected formCacheSubscription: Subscription;
    protected actionsPermissions: OPermissions[];
    protected snackBarService: SnackBarService;
    protected _includeBreadcrumb: boolean;
    protected _isSaveBtnEnabledSubject: BehaviorSubject<boolean>;
    protected _isEditBtnEnabledSubject: BehaviorSubject<boolean>;
    protected _existsChangesToSaveSubject: BehaviorSubject<boolean>;
    constructor(_form: OFormBase, element: ElementRef, injector: Injector);
    ngOnInit(): void;
    ngOnDestroy(): void;
    ngAfterViewInit(): void;
    setInitialMode(): void;
    setInsertMode(): void;
    setEditMode(): void;
    onCloseDetail(options?: any): void;
    onBack(options?: any): void;
    onReload(): void;
    onInsert(): void;
    onEdit(): void;
    onDelete(): void;
    onSave(): void;
    cancelOperation(): void;
    acceptOperation(): void;
    handleAcceptInsertOperation(): void;
    handleAcceptEditOperation(): void;
    showConfirmDelete(): void;
    get showNavigation(): boolean;
    getLabelHeaderAlign(): string;
    get showUndoButton(): boolean;
    get isChangesStackEmpty(): boolean;
    onUndoLastChange(): void;
    get isRefreshBtnEnabled(): boolean;
    get isInsertBtnEnabled(): boolean;
    get isDeleteBtnEnabled(): boolean;
    hasEnabledPermission(permission: OPermissions): boolean;
    get includeBreadcrumb(): boolean;
    set includeBreadcrumb(arg: boolean);
    protected manageEditableDetail(): void;
    protected parsePermissions(): void;
    private permissionManagement;
    protected parseShowBackButton(): void;
    get showBack(): boolean;
    private checkEnabledPermission;
    static ɵfac: i0.ɵɵFactoryDeclaration<OFormToolbarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<OFormToolbarComponent, "o-form-toolbar", never, { "labelHeader": { "alias": "label-header"; "required": false; }; "labelHeaderAlign": { "alias": "label-header-align"; "required": false; }; "headeractions": { "alias": "header-actions"; "required": false; }; "showHeaderActionsText": { "alias": "show-header-actions-text"; "required": false; }; "showHeaderNavigation": { "alias": "show-header-navigation"; "required": false; }; "showBackButton": { "alias": "show-back-button"; "required": false; }; }, { "onCancel": "onCancel"; }, never, ["[o-custom-form-toolbar-buttons-wrapper]"], true, never>;
}
