import * as ng_zorro_antd_popconfirm from 'ng-zorro-antd/popconfirm';
import * as _angular_core from '@angular/core';
import { ElementRef, TemplateRef, EventEmitter, QueryList } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { NzButtonType } from 'ng-zorro-antd/button';
import { NzConfigKey } from 'ng-zorro-antd/core/config';
import { NzTSType, NgStyleInterface } from 'ng-zorro-antd/core/types';
import { NzTooltipBaseDirective, NzTooltipTrigger, PropertyMapping, NzTooltipComponent } from 'ng-zorro-antd/tooltip';

type NzAutoFocusType = null | 'ok' | 'cancel';
declare class NzPopconfirmDirective extends NzTooltipBaseDirective {
    readonly _nzModuleName: NzConfigKey;
    arrowPointAtCenter?: boolean;
    title?: NzTSType;
    titleContext?: object | null;
    directiveTitle?: NzTSType | null;
    trigger?: NzTooltipTrigger;
    placement?: string | string[];
    origin?: ElementRef<HTMLElement>;
    mouseEnterDelay?: number;
    mouseLeaveDelay?: number;
    overlayClassName?: string;
    overlayStyle?: NgStyleInterface;
    visible?: boolean;
    nzBeforeConfirm?: () => Observable<boolean> | Promise<boolean> | boolean;
    nzIcon?: string | TemplateRef<void>;
    nzCondition: boolean;
    nzPopconfirmShowArrow: boolean;
    nzPopconfirmBackdrop?: boolean;
    nzAutofocus: NzAutoFocusType;
    nzOkText: _angular_core.InputSignal<string | null>;
    nzOkType: _angular_core.InputSignal<string>;
    nzCancelText: _angular_core.InputSignal<string | null>;
    nzOkButtonProps: _angular_core.InputSignal<Partial<ng_zorro_antd_popconfirm.NzPopConfirmButton> | null>;
    nzCancelButtonProps: _angular_core.InputSignal<Partial<ng_zorro_antd_popconfirm.NzPopConfirmButton> | null>;
    /**
     * @deprecated v21
     * please use the nzOkButton object input to describe option of the ok button
     */
    nzOkDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * @deprecated v21
     * please use the nzOkButton object input to describe option of the ok button
     */
    nzOkDanger: _angular_core.InputSignalWithTransform<boolean, unknown>;
    private okButtonProps;
    private cancelButtonProps;
    directiveContent?: NzTSType | null;
    content?: NzTSType | null;
    overlayClickable?: boolean;
    readonly visibleChange: EventEmitter<boolean>;
    readonly nzOnCancel: EventEmitter<void>;
    readonly nzOnConfirm: EventEmitter<void>;
    protected getProxyPropertyMap(): PropertyMapping;
    constructor();
    /**
     * @override
     */
    protected createComponent(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<NzPopconfirmDirective, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NzPopconfirmDirective, "[nz-popconfirm]", ["nzPopconfirm"], { "arrowPointAtCenter": { "alias": "nzPopconfirmArrowPointAtCenter"; "required": false; }; "title": { "alias": "nzPopconfirmTitle"; "required": false; }; "titleContext": { "alias": "nzPopconfirmTitleContext"; "required": false; }; "directiveTitle": { "alias": "nz-popconfirm"; "required": false; }; "trigger": { "alias": "nzPopconfirmTrigger"; "required": false; }; "placement": { "alias": "nzPopconfirmPlacement"; "required": false; }; "origin": { "alias": "nzPopconfirmOrigin"; "required": false; }; "mouseEnterDelay": { "alias": "nzPopconfirmMouseEnterDelay"; "required": false; }; "mouseLeaveDelay": { "alias": "nzPopconfirmMouseLeaveDelay"; "required": false; }; "overlayClassName": { "alias": "nzPopconfirmOverlayClassName"; "required": false; }; "overlayStyle": { "alias": "nzPopconfirmOverlayStyle"; "required": false; }; "visible": { "alias": "nzPopconfirmVisible"; "required": false; }; "nzBeforeConfirm": { "alias": "nzBeforeConfirm"; "required": false; }; "nzIcon": { "alias": "nzIcon"; "required": false; }; "nzCondition": { "alias": "nzCondition"; "required": false; }; "nzPopconfirmShowArrow": { "alias": "nzPopconfirmShowArrow"; "required": false; }; "nzPopconfirmBackdrop": { "alias": "nzPopconfirmBackdrop"; "required": false; }; "nzAutofocus": { "alias": "nzAutofocus"; "required": false; }; "nzOkText": { "alias": "nzOkText"; "required": false; "isSignal": true; }; "nzOkType": { "alias": "nzOkType"; "required": false; "isSignal": true; }; "nzCancelText": { "alias": "nzCancelText"; "required": false; "isSignal": true; }; "nzOkButtonProps": { "alias": "nzOkButtonProps"; "required": false; "isSignal": true; }; "nzCancelButtonProps": { "alias": "nzCancelButtonProps"; "required": false; "isSignal": true; }; "nzOkDisabled": { "alias": "nzOkDisabled"; "required": false; "isSignal": true; }; "nzOkDanger": { "alias": "nzOkDanger"; "required": false; "isSignal": true; }; }, { "visibleChange": "nzPopconfirmVisibleChange"; "nzOnCancel": "nzOnCancel"; "nzOnConfirm": "nzOnConfirm"; }, never, never, true, never>;
    static ngAcceptInputType_arrowPointAtCenter: unknown;
    static ngAcceptInputType_nzCondition: unknown;
    static ngAcceptInputType_nzPopconfirmShowArrow: unknown;
}
declare class NzPopconfirmComponent extends NzTooltipComponent {
    okBtn: QueryList<ElementRef>;
    cancelBtn: QueryList<ElementRef>;
    nzCondition: boolean;
    nzPopconfirmShowArrow: boolean;
    nzIcon?: string | TemplateRef<void>;
    nzAutoFocus: NzAutoFocusType;
    nzBeforeConfirm: (() => Observable<boolean> | Promise<boolean> | boolean) | null;
    nzOkText: _angular_core.WritableSignal<string | null>;
    nzCancelText: _angular_core.WritableSignal<string | null>;
    nzOkButtonProps: _angular_core.WritableSignal<Partial<ng_zorro_antd_popconfirm.NzPopConfirmButton> & {
        nzType: NzButtonType;
    }>;
    nzCancelButtonProps: _angular_core.WritableSignal<Partial<ng_zorro_antd_popconfirm.NzPopConfirmButton> | null>;
    readonly nzOnCancel: Subject<void>;
    readonly nzOnConfirm: Subject<void>;
    protected _trigger: NzTooltipTrigger;
    private elementFocusedBeforeModalWasOpened;
    private document;
    _prefix: string;
    confirmLoading: boolean;
    constructor();
    /**
     * @override
     */
    show(): void;
    hide(): void;
    handleConfirm(): void;
    onCancel(): void;
    onConfirm(): void;
    private capturePreviouslyFocusedElement;
    private restoreFocus;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<NzPopconfirmComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<NzPopconfirmComponent, "nz-popconfirm", ["nzPopconfirmComponent"], {}, {}, never, never, true, never>;
}

declare class NzPopconfirmModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<NzPopconfirmModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<NzPopconfirmModule, never, [typeof NzPopconfirmComponent, typeof NzPopconfirmDirective], [typeof NzPopconfirmComponent, typeof NzPopconfirmDirective]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<NzPopconfirmModule>;
}

/**
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */

interface NzPopConfirmButton {
    nzType: NzButtonType;
    nzDanger: boolean;
    nzDisabled: boolean;
}
type NzPopConfirmButtonProps = Partial<NzPopConfirmButton>;

export { NzPopconfirmComponent, NzPopconfirmDirective, NzPopconfirmModule };
export type { NzAutoFocusType, NzPopConfirmButton, NzPopConfirmButtonProps };
