import * as i0 from '@angular/core';
import { AnimationCallbackEvent, Signal, Provider } from '@angular/core';
import { Subject } from 'rxjs';

/**
 * 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 AnimationDuration {
    static SLOW: string;
    static BASE: string;
    static FAST: string;
}
declare class AnimationCurves {
    static EASE_BASE_OUT: string;
    static EASE_BASE_IN: string;
    static EASE_OUT: string;
    static EASE_IN: string;
    static EASE_IN_OUT: string;
    static EASE_OUT_BACK: string;
    static EASE_IN_BACK: string;
    static EASE_IN_OUT_BACK: string;
    static EASE_OUT_CIRC: string;
    static EASE_IN_CIRC: string;
    static EASE_IN_OUT_CIRC: string;
    static EASE_OUT_QUINT: string;
    static EASE_IN_QUINT: string;
    static EASE_IN_OUT_QUINT: string;
}

declare class NzAnimationCollapseDirective {
    private readonly elementRef;
    private readonly noAnimation;
    private readonly animationEnabled;
    readonly open: i0.InputSignal<boolean>;
    readonly leavedClassName: i0.InputSignal<string>;
    private firstRender;
    constructor();
    private getActualScrollHeight;
    protected onTransitionEnd(event: TransitionEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzAnimationCollapseDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzAnimationCollapseDirective, "[animation-collapse]", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "leavedClassName": { "alias": "leavedClassName"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
declare class NzAnimationTreeCollapseService {
    firstRender: boolean;
    virtualScroll: boolean;
    readonly animationDone$: Subject<void>;
    constructor();
    static ɵfac: i0.ɵɵFactoryDeclaration<NzAnimationTreeCollapseService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NzAnimationTreeCollapseService>;
}
declare class NzAnimationTreeCollapseDirective {
    private readonly treeCollapseService;
    private readonly noAnimation;
    private readonly animationEnabled;
    private get firstRender();
    protected onAnimationEnter(event: AnimationCallbackEvent): void;
    protected onAnimationLeave(event: AnimationCallbackEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzAnimationTreeCollapseDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzAnimationTreeCollapseDirective, "[animation-tree-collapse]", never, {}, {}, 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 const SLIDE_UP_ANIMATION_CLASS: {
    enter: string;
    leave: string;
};
declare const SLIDE_DOWN_ANIMATION_CLASS: {
    enter: string;
    leave: string;
};
type SlideDirection = 'up' | 'down';
declare function slideAnimationEnter(directionFn?: () => SlideDirection): Signal<string>;
declare function slideAnimationLeave(directionFn?: () => SlideDirection): Signal<string>;

declare const NZ_NO_ANIMATION_CLASS = "nz-animate-disabled";
declare class NzNoAnimationDirective {
    readonly animationType: "NoopAnimations" | "BrowserAnimations" | null;
    readonly nzNoAnimation: i0.InputSignalWithTransform<boolean, unknown>;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzNoAnimationDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzNoAnimationDirective, "[nzNoAnimation]", ["nzNoAnimation"], { "nzNoAnimation": { "alias": "nzNoAnimation"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
/**
 * @deprecated Will be removed in v23, please use {@link NzNoAnimationDirective} instead.
 */
declare class NzNoAnimationModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzNoAnimationModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<NzNoAnimationModule, never, [typeof NzNoAnimationDirective], [typeof NzNoAnimationDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<NzNoAnimationModule>;
}
/**
 * Returns the set of dependency-injection providers to disable animations in a context.
 */
declare function provideNzNoAnimation(): Provider[];
/**
 * If the current animation mode is `NoopAnimations`, returns the false as a signal.
 * Otherwise, returns the result of the provided getter as a computed signal.
 * @param getter A function that returns the outer logic for whether animations are enabled.
 */
declare function isAnimationEnabled(getter: () => boolean): Signal<boolean>;
/**
 * If the current animation mode is `NoopAnimations`, returns the no-animation class as a signal.
 * Otherwise, returns the result of the provided class name getter as a computed signal.
 * @param classNameGetter A function that returns the class name string.
 */
declare function withAnimationCheck(classNameGetter: () => string): Signal<string>;

export { AnimationCurves, AnimationDuration, NZ_NO_ANIMATION_CLASS, NzAnimationCollapseDirective, NzAnimationTreeCollapseDirective, NzAnimationTreeCollapseService, NzNoAnimationDirective, NzNoAnimationModule, SLIDE_DOWN_ANIMATION_CLASS, SLIDE_UP_ANIMATION_CLASS, isAnimationEnabled, provideNzNoAnimation, slideAnimationEnter, slideAnimationLeave, withAnimationCheck };
