import { Maybe, ErrorInput, ReadableError } from '@dereekb/util';
import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';
import { DbxErrorViewButtonEvent } from './error.view.component';
import { NgPopoverRef } from 'ng-overlay-container';
import * as i0 from "@angular/core";
type DbxErrorComponentViewType = 'none' | 'default' | 'custom';
interface DbxErrorComponentState {
    readonly viewType: DbxErrorComponentViewType;
    readonly isDefaultError?: Maybe<boolean>;
    readonly message?: Maybe<string>;
    readonly rawError?: Maybe<ErrorInput>;
    readonly error?: Maybe<ReadableError>;
    readonly customView?: Maybe<DbxInjectionComponentConfig>;
}
/**
 * Root error component that displays content related to an error.
 */
export declare class DbxErrorComponent {
    private readonly popoverService;
    private readonly dbxErrorWidgetService;
    readonly popoverOpened: import("@angular/core").OutputEmitterRef<NgPopoverRef<any, any>>;
    readonly error: import("@angular/core").InputSignal<Maybe<ErrorInput>>;
    readonly iconOnly: import("@angular/core").InputSignal<Maybe<boolean>>;
    private readonly _errorOverrideSignal;
    readonly errorSignal: import("@angular/core").Signal<Maybe<ErrorInput>>;
    readonly state: import("@angular/core").Signal<DbxErrorComponentState>;
    readonly viewTypeSignal: import("@angular/core").Signal<DbxErrorComponentViewType>;
    readonly isDefaultErrorSignal: import("@angular/core").Signal<Maybe<boolean>>;
    readonly messageSignal: import("@angular/core").Signal<Maybe<string>>;
    readonly customViewSignal: import("@angular/core").Signal<Maybe<DbxInjectionComponentConfig<unknown>>>;
    setError(error: Maybe<ErrorInput>): void;
    openErrorPopover(event: DbxErrorViewButtonEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DbxErrorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DbxErrorComponent, "dbx-error", never, { "error": { "alias": "error"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; }, { "popoverOpened": "popoverOpened"; }, never, never, true, never>;
}
export {};
