import * as _angular_cdk_bidi from '@angular/cdk/bidi';
import { Direction } from '@angular/cdk/bidi';
import * as _angular_core from '@angular/core';
import { OnInit, TemplateRef, EventEmitter, OnChanges, ElementRef, SimpleChanges } from '@angular/core';
import { NzConfigService, NzConfigKey } from 'ng-zorro-antd/core/config';

/**
 * 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
 */

declare class NzFloatButtonComponent implements OnInit {
    private directionality;
    private cdr;
    private destroyRef;
    nzHref: string | null;
    nzTarget: string | null;
    nzType: 'default' | 'primary';
    nzShape: 'circle' | 'square';
    nzIcon: TemplateRef<void> | null;
    nzDescription: TemplateRef<void> | string | null;
    readonly nzOnClick: EventEmitter<boolean>;
    dir: Direction;
    constructor();
    ngOnInit(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<NzFloatButtonComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<NzFloatButtonComponent, "nz-float-button", ["nzFloatButton"], { "nzHref": { "alias": "nzHref"; "required": false; }; "nzTarget": { "alias": "nzTarget"; "required": false; }; "nzType": { "alias": "nzType"; "required": false; }; "nzShape": { "alias": "nzShape"; "required": false; }; "nzIcon": { "alias": "nzIcon"; "required": false; }; "nzDescription": { "alias": "nzDescription"; "required": false; }; }, { "nzOnClick": "nzOnClick"; }, never, never, true, never>;
}

declare class NzFloatButtonContentComponent {
    nzIcon: TemplateRef<void> | null;
    nzDescription: string | TemplateRef<void> | null;
    nzShape: 'circle' | 'square';
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<NzFloatButtonContentComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<NzFloatButtonContentComponent, "nz-float-button-content", ["nzFloatButtonContent"], { "nzIcon": { "alias": "nzIcon"; "required": false; }; "nzDescription": { "alias": "nzDescription"; "required": false; }; "nzShape": { "alias": "nzShape"; "required": false; }; }, {}, never, never, true, never>;
}

/**
 * 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
 */

declare class NzFloatButtonTopComponent implements OnInit, OnChanges {
    nzConfigService: NzConfigService;
    private scrollSrv;
    private platform;
    private ngZone;
    private cdr;
    private directionality;
    private destroyRef;
    readonly _nzModuleName: NzConfigKey;
    private scrollListenerDestroy$;
    private target?;
    visible: boolean;
    dir: Direction;
    nzHref: string | null;
    nzType: 'default' | 'primary';
    nzShape: 'circle' | 'square';
    nzIcon: TemplateRef<void> | null;
    nzDescription: TemplateRef<void> | null;
    nzTemplate?: TemplateRef<void>;
    nzVisibilityHeight: number;
    nzTarget?: string | HTMLElement;
    nzDuration: number;
    readonly nzOnClick: EventEmitter<boolean>;
    set backTop(backTop: ElementRef<HTMLElement> | undefined);
    private doc;
    private backTopClickSubscription;
    constructor();
    ngOnInit(): void;
    private getTarget;
    private handleScroll;
    private registerScrollEvent;
    detectChanges(): void;
    ngOnChanges(changes: SimpleChanges): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<NzFloatButtonTopComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<NzFloatButtonTopComponent, "nz-float-button-top", ["nzFloatButtonTop"], { "nzHref": { "alias": "nzHref"; "required": false; }; "nzType": { "alias": "nzType"; "required": false; }; "nzShape": { "alias": "nzShape"; "required": false; }; "nzIcon": { "alias": "nzIcon"; "required": false; }; "nzDescription": { "alias": "nzDescription"; "required": false; }; "nzTemplate": { "alias": "nzTemplate"; "required": false; }; "nzVisibilityHeight": { "alias": "nzVisibilityHeight"; "required": false; }; "nzTarget": { "alias": "nzTarget"; "required": false; }; "nzDuration": { "alias": "nzDuration"; "required": false; }; }, { "nzOnClick": "nzOnClick"; }, never, never, true, never>;
    static ngAcceptInputType_nzVisibilityHeight: unknown;
    static ngAcceptInputType_nzDuration: unknown;
}

declare class NzFloatButtonGroupComponent {
    readonly nzFloatButtonComponents: _angular_core.Signal<readonly NzFloatButtonComponent[]>;
    readonly nzFloatButtonTopComponents: _angular_core.Signal<readonly NzFloatButtonTopComponent[]>;
    readonly nzHref: _angular_core.InputSignal<string | null>;
    readonly nzTarget: _angular_core.InputSignal<string | null>;
    readonly nzType: _angular_core.InputSignal<"default" | "primary">;
    readonly nzIcon: _angular_core.InputSignal<TemplateRef<void> | null>;
    readonly nzDescription: _angular_core.InputSignal<TemplateRef<void> | null>;
    readonly nzShape: _angular_core.InputSignal<"circle" | "square">;
    readonly nzTrigger: _angular_core.InputSignal<"click" | "hover" | null>;
    readonly nzOpen: _angular_core.InputSignal<boolean | null>;
    readonly nzPlacement: _angular_core.InputSignal<"top" | "right" | "bottom" | "left">;
    readonly nzOnOpenChange: _angular_core.OutputEmitterRef<boolean>;
    protected dir: _angular_core.WritableSignal<_angular_cdk_bidi.Direction>;
    protected open: _angular_core.WritableSignal<boolean>;
    protected isMenuMode: _angular_core.Signal<boolean>;
    protected isControlledMode: _angular_core.Signal<boolean>;
    protected class: _angular_core.Signal<string[]>;
    constructor();
    clickOpenMenu(): void;
    hoverOpenMenu(): void;
    clickCloseMenu(): void;
    hoverCloseMenu(): void;
    private handleEvent;
    private generateClass;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<NzFloatButtonGroupComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<NzFloatButtonGroupComponent, "nz-float-button-group", ["nzFloatButtonGroup"], { "nzHref": { "alias": "nzHref"; "required": false; "isSignal": true; }; "nzTarget": { "alias": "nzTarget"; "required": false; "isSignal": true; }; "nzType": { "alias": "nzType"; "required": false; "isSignal": true; }; "nzIcon": { "alias": "nzIcon"; "required": false; "isSignal": true; }; "nzDescription": { "alias": "nzDescription"; "required": false; "isSignal": true; }; "nzShape": { "alias": "nzShape"; "required": false; "isSignal": true; }; "nzTrigger": { "alias": "nzTrigger"; "required": false; "isSignal": true; }; "nzOpen": { "alias": "nzOpen"; "required": false; "isSignal": true; }; "nzPlacement": { "alias": "nzPlacement"; "required": false; "isSignal": true; }; }, { "nzOnOpenChange": "nzOnOpenChange"; }, ["nzFloatButtonComponents", "nzFloatButtonTopComponents"], ["*"], true, never>;
}

declare class NzFloatButtonModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<NzFloatButtonModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<NzFloatButtonModule, never, [typeof NzFloatButtonComponent, typeof NzFloatButtonGroupComponent, typeof NzFloatButtonTopComponent, typeof NzFloatButtonContentComponent], [typeof NzFloatButtonComponent, typeof NzFloatButtonGroupComponent, typeof NzFloatButtonTopComponent, typeof NzFloatButtonContentComponent]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<NzFloatButtonModule>;
}

export { NzFloatButtonComponent, NzFloatButtonContentComponent, NzFloatButtonGroupComponent, NzFloatButtonModule, NzFloatButtonTopComponent };
