import { OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { Observable } from 'rxjs';
import { QdMenuButtonConfig } from '../../button/model/button-config';
import { QdDialogComponent, QdDialogService } from '../../dialog/dialog.module';
import { QdPageConfig, QdPageConfigCreate, QdPageConfigCustom, QdPageConfigInspect, QdPageContextConfig, QdPageSelectedContext, QdPageTypeInspectConfig } from '../model/page-config.interface';
import { QdFacetOptionMultiSelect, QdFacetOptionSingleSelect, QdPageHeaderFacetConfig } from '../model/page-header-facet.interface';
import { QdPageObjectResolver } from '../model/page-object-resolver';
import { QdContextService } from '../shared/services/context.service';
import { QdFormGroupManagerService } from '../shared/services/form-group-manager.service';
import { QdPageStoreService } from '../shared/services/page-store.service';
import { QdResolverTriggerService } from '../shared/services/resolver-trigger.service';
import * as i0 from "@angular/core";
export declare class QdPageObjectHeaderComponent<T extends object> implements OnInit, OnChanges, OnDestroy {
    private pageObjectResolver;
    private formGroupManagerService;
    private dialogComponent;
    private dialog;
    private contextService;
    private resolverTriggerService;
    private pageStoreService;
    config: QdPageConfig<T>;
    hasNavigation: boolean;
    testId: string;
    get isInDialog(): boolean;
    toggleFacets(): void;
    get adaptiveMode(): boolean;
    private _pageObjectDataSubject;
    private _isLoadingSubject;
    private _customActionsSubject;
    private _customActionsSub?;
    private _destroyed$;
    private _availableContexts;
    pageObjectData$: Observable<T>;
    isLoading$: Observable<boolean>;
    customActions$: Observable<QdMenuButtonConfig>;
    facetsCollapsed: boolean;
    contexts$: Observable<{
        label: string;
        value: QdPageSelectedContext[];
        context: QdPageContextConfig;
        selection: QdPageSelectedContext | QdPageSelectedContext[];
    }[]>;
    get borderBottomStyle(): string;
    get showEdit$(): Observable<boolean>;
    get showDelete$(): Observable<boolean>;
    get showArchive$(): Observable<boolean>;
    get showCancel$(): Observable<boolean>;
    get showSave$(): Observable<boolean>;
    get headerFacets(): QdPageHeaderFacetConfig<T>[] | undefined;
    get isInspectAndViewMode$(): Observable<boolean>;
    get isCreate(): boolean;
    get isOverview(): boolean;
    get isContextSelectable(): boolean;
    get editButton(): QdPageTypeInspectConfig['edit'];
    get deleteButton(): QdPageTypeInspectConfig['delete'];
    get archiveButton(): QdPageTypeInspectConfig['archive'];
    get cancelButton(): QdPageTypeInspectConfig['cancel'];
    get saveButton(): QdPageTypeInspectConfig['save'];
    get hideEdit(): boolean;
    get hasValuesChanged$(): Observable<boolean>;
    get $canSave(): Observable<boolean>;
    constructor(pageObjectResolver: QdPageObjectResolver<T>, formGroupManagerService: QdFormGroupManagerService, dialogComponent: QdDialogComponent, dialog: QdDialogService, contextService: QdContextService, resolverTriggerService: QdResolverTriggerService, pageStoreService: QdPageStoreService<T>);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    updateMetadata(metadata: Partial<T>): void;
    handleAction(facet: QdFacetOptionSingleSelect | QdFacetOptionMultiSelect): void;
    hasHeaderFacets(config: QdPageConfig<T>): config is QdPageConfigCreate<T> | QdPageConfigInspect<T> | QdPageConfigCustom<T>;
    edit(): void;
    cancel(): void;
    save(): void;
    changeContext(context: QdPageContextConfig, selection: QdPageSelectedContext | QdPageSelectedContext[], event: MouseEvent): void;
    clearContext(context: QdPageContextConfig): void;
    private setupResolverTrigger;
    private initContexts;
    private updateCustomActions;
    private subscribeToViewOnlyMode;
    private getCustomActionsByMode;
    private openCancelDialog;
    static ɵfac: i0.ɵɵFactoryDeclaration<QdPageObjectHeaderComponent<any>, [{ optional: true; }, { optional: true; }, { optional: true; }, null, null, null, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<QdPageObjectHeaderComponent<any>, "qd-page-object-header", never, { "config": { "alias": "config"; "required": true; }; "hasNavigation": { "alias": "hasNavigation"; "required": true; }; "testId": { "alias": "data-test-id"; "required": false; }; }, {}, never, never, false, never>;
}
//# sourceMappingURL=page-object-header.component.d.ts.map