import { Direction } from '@angular/cdk/bidi';
import * as i0 from '@angular/core';
import { OnInit, OnChanges, AfterViewInit, SimpleChanges } from '@angular/core';
import { ReplaySubject } from 'rxjs';
import { IndexableObject } from 'ng-zorro-antd/core/types';

/**
 * 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 NzJustify = 'start' | 'end' | 'center' | 'space-around' | 'space-between' | 'space-evenly';
type NzAlign = 'top' | 'middle' | 'bottom';
declare class NzRowDirective implements OnInit, OnChanges, AfterViewInit {
    private elementRef;
    private renderer;
    private mediaMatcher;
    private ngZone;
    private platform;
    private breakpointService;
    private directionality;
    private destroyRef;
    nzAlign: NzAlign | null;
    nzJustify: NzJustify | null;
    nzGutter: string | number | IndexableObject | [number, number] | [IndexableObject, IndexableObject] | null;
    readonly actualGutter$: ReplaySubject<[number | null, number | null]>;
    dir: Direction;
    private readonly destroy$;
    getGutter(): [number | null, number | null];
    setGutterStyle(): void;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzRowDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzRowDirective, "[nz-row],nz-row,nz-form-item", ["nzRow"], { "nzAlign": { "alias": "nzAlign"; "required": false; }; "nzJustify": { "alias": "nzJustify"; "required": false; }; "nzGutter": { "alias": "nzGutter"; "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
 */

interface EmbeddedProperty {
    span?: number;
    pull?: number;
    push?: number;
    offset?: number;
    order?: number;
}
declare class NzColDirective implements OnInit, OnChanges, AfterViewInit {
    private elementRef;
    private renderer;
    private directionality;
    private destroyRef;
    private classMap;
    hostFlexStyle: string | null;
    dir: Direction;
    nzFlex: string | number | null;
    nzSpan: string | number | null;
    nzOrder: string | number | null;
    nzOffset: string | number | null;
    nzPush: string | number | null;
    nzPull: string | number | null;
    nzXs: string | number | EmbeddedProperty | null;
    nzSm: string | number | EmbeddedProperty | null;
    nzMd: string | number | EmbeddedProperty | null;
    nzLg: string | number | EmbeddedProperty | null;
    nzXl: string | number | EmbeddedProperty | null;
    nzXXl: string | number | EmbeddedProperty | null;
    setHostClassMap(): void;
    setHostFlexStyle(): void;
    parseFlex(flex: number | string | null): string | null;
    generateClass(): object;
    nzRowDirective: NzRowDirective | null;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzColDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzColDirective, "[nz-col],nz-col,nz-form-control,nz-form-label", ["nzCol"], { "nzFlex": { "alias": "nzFlex"; "required": false; }; "nzSpan": { "alias": "nzSpan"; "required": false; }; "nzOrder": { "alias": "nzOrder"; "required": false; }; "nzOffset": { "alias": "nzOffset"; "required": false; }; "nzPush": { "alias": "nzPush"; "required": false; }; "nzPull": { "alias": "nzPull"; "required": false; }; "nzXs": { "alias": "nzXs"; "required": false; }; "nzSm": { "alias": "nzSm"; "required": false; }; "nzMd": { "alias": "nzMd"; "required": false; }; "nzLg": { "alias": "nzLg"; "required": false; }; "nzXl": { "alias": "nzXl"; "required": false; }; "nzXXl": { "alias": "nzXXl"; "required": false; }; }, {}, never, never, true, never>;
}

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

export { NzColDirective, NzGridModule, NzRowDirective };
export type { EmbeddedProperty, NzAlign, NzJustify };
