import * as i0 from '@angular/core';
import { ElementRef, InjectionToken, WritableSignal, Signal, OnChanges, AfterContentInit, TemplateRef, QueryList, SimpleChanges } from '@angular/core';
import { NzSizeLDSType, NzSafeAny } from 'ng-zorro-antd/core/types';
import { NzConfigKey, NzConfigService } from 'ng-zorro-antd/core/config';

declare class NzSpaceCompactItemDirective {
    /**
     * Ancestor component injected from the parent.
     * Note that it is not necessarily the direct parent component.
     */
    private readonly spaceCompactCmp;
    private readonly items;
    private readonly type;
    private readonly elementRef;
    private readonly dir;
    private get parentElement();
    protected class: i0.Signal<string[] | null>;
    constructor();
    static ɵfac: i0.ɵɵFactoryDeclaration<NzSpaceCompactItemDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzSpaceCompactItemDirective, never, ["nzSpaceCompactItem"], {}, {}, never, never, true, never>;
}

declare class NzSpaceCompactComponent {
    private readonly formSize;
    readonly nzBlock: i0.InputSignalWithTransform<boolean, unknown>;
    readonly nzDirection: i0.InputSignal<"vertical" | "horizontal">;
    readonly nzSize: i0.InputSignal<NzSizeLDSType>;
    readonly elementRef: ElementRef<HTMLElement>;
    protected readonly finalSize: i0.Signal<NzSizeLDSType>;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzSpaceCompactComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzSpaceCompactComponent, "nz-space-compact", ["nzSpaceCompact"], { "nzBlock": { "alias": "nzBlock"; "required": false; "isSignal": true; }; "nzDirection": { "alias": "nzDirection"; "required": false; "isSignal": true; }; "nzSize": { "alias": "nzSize"; "required": false; "isSignal": true; }; }, {}, 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 NZ_SPACE_COMPACT_SIZE: InjectionToken<Signal<NzSizeLDSType>>;
declare const NZ_SPACE_COMPACT_ITEMS: InjectionToken<WritableSignal<NzSpaceCompactItemDirective[]>>;
declare const NZ_SPACE_COMPACT_ITEM_TYPE: InjectionToken<string>;

declare class NzSpaceItemDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzSpaceItemDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzSpaceItemDirective, "[nzSpaceItem]", 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
 */
type NzSpaceDirection = 'vertical' | 'horizontal';
type NzSpaceAlign = 'start' | 'end' | 'center' | 'baseline';
type NzSpaceType = 'small' | 'middle' | 'large';
type NzSpaceSize = NzSpaceType | number;

declare class NzSpaceComponent implements OnChanges, AfterContentInit {
    readonly _nzModuleName: NzConfigKey;
    nzConfigService: NzConfigService;
    private cdr;
    private destroyRef;
    nzDirection: NzSpaceDirection;
    nzAlign?: NzSpaceAlign;
    nzSplit: TemplateRef<{
        $implicit: number;
    }> | string | null;
    nzWrap: boolean;
    nzSize: NzSpaceSize | [NzSpaceSize, NzSpaceSize];
    items: QueryList<TemplateRef<NzSafeAny>>;
    mergedAlign?: NzSpaceAlign;
    horizontalSize: number;
    verticalSize: number;
    constructor();
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterContentInit(): void;
    private updateSpaceSize;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzSpaceComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzSpaceComponent, "nz-space, [nz-space]", ["nzSpace"], { "nzDirection": { "alias": "nzDirection"; "required": false; }; "nzAlign": { "alias": "nzAlign"; "required": false; }; "nzSplit": { "alias": "nzSplit"; "required": false; }; "nzWrap": { "alias": "nzWrap"; "required": false; }; "nzSize": { "alias": "nzSize"; "required": false; }; }, {}, ["items"], ["*"], true, never>;
    static ngAcceptInputType_nzWrap: unknown;
}

declare class NzSpaceModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzSpaceModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<NzSpaceModule, never, [typeof NzSpaceComponent, typeof NzSpaceItemDirective, typeof NzSpaceCompactComponent], [typeof NzSpaceComponent, typeof NzSpaceItemDirective, typeof NzSpaceCompactComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<NzSpaceModule>;
}

export { NZ_SPACE_COMPACT_ITEMS, NZ_SPACE_COMPACT_ITEM_TYPE, NZ_SPACE_COMPACT_SIZE, NzSpaceCompactComponent, NzSpaceCompactItemDirective, NzSpaceComponent, NzSpaceItemDirective, NzSpaceModule };
export type { NzSpaceAlign, NzSpaceDirection, NzSpaceSize, NzSpaceType };
