import * as _angular_core from '@angular/core';
import * as _angular_cdk_bidi from '@angular/cdk/bidi';
import { ResponsiveLike } from 'ng-zorro-antd/core/services';
import { NgStyleInterface } from 'ng-zorro-antd/core/types';

type NzJustify = 'start' | 'end' | 'center' | 'space-around' | 'space-between' | 'space-evenly';
type NzAlign = 'top' | 'middle' | 'bottom' | 'stretch';
type Gutter = number | string | undefined | Partial<ResponsiveLike<number | string>>;
type Gap = number | string | undefined;
declare class NzRowDirective {
    private readonly mediaMatcher;
    private readonly platform;
    private readonly breakpointService;
    protected readonly dir: _angular_core.WritableSignal<_angular_cdk_bidi.Direction>;
    readonly nzAlign: _angular_core.InputSignal<NzAlign | Partial<ResponsiveLike<NzAlign>> | null>;
    readonly nzJustify: _angular_core.InputSignal<NzJustify | Partial<ResponsiveLike<NzJustify>> | null>;
    readonly nzGutter: _angular_core.InputSignal<Gutter | [Gutter, Gutter] | null>;
    readonly nzWrap: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Internal signal tracking the current breakpoint.
     * Used to trigger recomputation of responsive gutters when viewport changes.
     */
    private readonly currentBreakpoint;
    protected readonly alignClass: _angular_core.Signal<string>;
    protected readonly flexClass: _angular_core.Signal<string>;
    readonly gutter: _angular_core.Signal<[Gap, Gap]>;
    protected readonly gutterStyle: _angular_core.Signal<NgStyleInterface>;
    private generateClass;
    private resolveResponsiveValue;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<NzRowDirective, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NzRowDirective, "[nz-row],nz-row,nz-form-item", ["nzRow"], { "nzAlign": { "alias": "nzAlign"; "required": false; "isSignal": true; }; "nzJustify": { "alias": "nzJustify"; "required": false; "isSignal": true; }; "nzGutter": { "alias": "nzGutter"; "required": false; "isSignal": true; }; "nzWrap": { "alias": "nzWrap"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

type ColSpanType = number | string;
interface ColSize {
    span?: ColSpanType;
    pull?: ColSpanType;
    push?: ColSpanType;
    offset?: ColSpanType;
    order?: ColSpanType;
}
declare class NzColDirective {
    private readonly nzRowDirective;
    protected readonly dir: _angular_core.WritableSignal<_angular_cdk_bidi.Direction>;
    readonly nzFlex: _angular_core.InputSignal<ColSpanType | null | undefined>;
    readonly nzSpan: _angular_core.InputSignal<ColSpanType | null | undefined>;
    readonly nzOrder: _angular_core.InputSignal<ColSpanType | null | undefined>;
    readonly nzOffset: _angular_core.InputSignal<ColSpanType | null | undefined>;
    readonly nzPush: _angular_core.InputSignal<ColSpanType | null | undefined>;
    readonly nzPull: _angular_core.InputSignal<ColSpanType | null | undefined>;
    readonly nzXs: _angular_core.InputSignal<ColSpanType | ColSize | null | undefined>;
    readonly nzSm: _angular_core.InputSignal<ColSpanType | ColSize | null | undefined>;
    readonly nzMd: _angular_core.InputSignal<ColSpanType | ColSize | null | undefined>;
    readonly nzLg: _angular_core.InputSignal<ColSpanType | ColSize | null | undefined>;
    readonly nzXl: _angular_core.InputSignal<ColSpanType | ColSize | null | undefined>;
    readonly nzXXl: _angular_core.InputSignal<ColSpanType | ColSize | null | undefined>;
    readonly nzXXXl: _angular_core.InputSignal<ColSpanType | ColSize | null | undefined>;
    protected readonly responsiveClass: _angular_core.Signal<string[]>;
    protected readonly hostClass: _angular_core.Signal<string[]>;
    protected readonly flexStyle: _angular_core.Signal<string | null | undefined>;
    protected readonly gutterPaddingStyle: _angular_core.Signal<NgStyleInterface>;
    private generateClassList;
    private generateClass;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<NzColDirective, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NzColDirective, "[nz-col],nz-col,nz-form-control,nz-form-label", ["nzCol"], { "nzFlex": { "alias": "nzFlex"; "required": false; "isSignal": true; }; "nzSpan": { "alias": "nzSpan"; "required": false; "isSignal": true; }; "nzOrder": { "alias": "nzOrder"; "required": false; "isSignal": true; }; "nzOffset": { "alias": "nzOffset"; "required": false; "isSignal": true; }; "nzPush": { "alias": "nzPush"; "required": false; "isSignal": true; }; "nzPull": { "alias": "nzPull"; "required": false; "isSignal": true; }; "nzXs": { "alias": "nzXs"; "required": false; "isSignal": true; }; "nzSm": { "alias": "nzSm"; "required": false; "isSignal": true; }; "nzMd": { "alias": "nzMd"; "required": false; "isSignal": true; }; "nzLg": { "alias": "nzLg"; "required": false; "isSignal": true; }; "nzXl": { "alias": "nzXl"; "required": false; "isSignal": true; }; "nzXXl": { "alias": "nzXXl"; "required": false; "isSignal": true; }; "nzXXXl": { "alias": "nzXXXl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

declare class NzGridModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<NzGridModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<NzGridModule, never, [typeof NzColDirective, typeof NzRowDirective], [typeof NzColDirective, typeof NzRowDirective]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<NzGridModule>;
}

export { NzColDirective, NzGridModule, NzRowDirective };
export type { ColSize, ColSpanType, Gutter, NzAlign, NzJustify };
