import * as _angular_core from '@angular/core';
import { ElementRef } from '@angular/core';
import { NumberInput } from '@angular/cdk/coercion';
import { HasElementRef } from '@fundamental-ngx/cdk/utils';

/** Describes number of columns in grid horizontal dimension */
declare const GRID_COLUMNS_NUMBER = 12;
declare const CSS_CLASS_NAME: {
    readonly layoutGrid: "fd-container";
    readonly layoutGridNoHorizontalGap: "fd-container--no-horizontal-gap";
    readonly layoutGridNoVerticalGap: "fd-container--no-vertical-gap";
    readonly layoutGridNoGap: "fd-container--no-gap";
    readonly col: "fd-col";
    readonly colGrow: "fd-col--full";
    readonly colSizePrefix: "fd-col--";
    readonly mdColSizePrefix: "fd-col-md--";
    readonly lgColSizePrefix: "fd-col-lg--";
    readonly xlColSizePrefix: "fd-col-xl--";
    readonly colOffsetPrefix: "fd-col--offset-";
    readonly mdColOffsetPrefix: "fd-col-md--offset-";
    readonly lgColOffsetPrefix: "fd-col-lg--offset-";
    readonly xlColOffsetPrefix: "fd-col-xl--offset-";
};

declare class LayoutGridColDirective implements HasElementRef {
    /** Defines the width of the element on the layout grid. */
    readonly fdLayoutGridCol: _angular_core.InputSignal<NumberInput>;
    /** Weather the column should take all available width */
    readonly colGrow: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /** Defines the width of the element on the layout grid for middle-size screen devices. */
    readonly colMd: _angular_core.InputSignal<number | undefined>;
    /** Defines the width of the element on the layout grid for large screen devices. */
    readonly colLg: _angular_core.InputSignal<number | undefined>;
    /** Defines the width of the element on the layout grid for extra-large screen devices. */
    readonly colXl: _angular_core.InputSignal<number | undefined>;
    /** Defines the offset width of the element on the layout grid. */
    readonly colOffset: _angular_core.InputSignal<number | undefined>;
    /** Defines the offset width of the element on the layout grid for middle-sized screen devices. */
    readonly colOffsetMd: _angular_core.InputSignal<number | undefined>;
    /** Defines the offset width of the element on the layout grid for large screen devices. */
    readonly colOffsetLg: _angular_core.InputSignal<number | undefined>;
    /** Defines the offset width of the element on the layout grid for extra-large screen devices. */
    readonly colOffsetXl: _angular_core.InputSignal<number | undefined>;
    /**
     * @hidden
     * Access to the host element's ElementRef.
     */
    readonly elementRef: ElementRef<any>;
    /** @hidden */
    protected readonly _cssClass: _angular_core.Signal<string>;
    /** @hidden */
    private _getCssClassWithColWidth;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<LayoutGridColDirective, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LayoutGridColDirective, "[fd-layout-grid-col], [fdLayoutGridCol]", never, { "fdLayoutGridCol": { "alias": "fdLayoutGridCol"; "required": false; "isSignal": true; }; "colGrow": { "alias": "colGrow"; "required": false; "isSignal": true; }; "colMd": { "alias": "colMd"; "required": false; "isSignal": true; }; "colLg": { "alias": "colLg"; "required": false; "isSignal": true; }; "colXl": { "alias": "colXl"; "required": false; "isSignal": true; }; "colOffset": { "alias": "colOffset"; "required": false; "isSignal": true; }; "colOffsetMd": { "alias": "colOffsetMd"; "required": false; "isSignal": true; }; "colOffsetLg": { "alias": "colOffsetLg"; "required": false; "isSignal": true; }; "colOffsetXl": { "alias": "colOffsetXl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

declare class LayoutGridRowDirective {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<LayoutGridRowDirective, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LayoutGridRowDirective, "[fd-layout-grid-row], [fdLayoutGridRow]", never, {}, {}, never, never, true, never>;
}

/**
 * Use a layout grid to arrange components evenly in a grid layout.
 */
declare class LayoutGridComponent implements HasElementRef {
    /** Whether the grid should have a gap. */
    readonly noGap: _angular_core.InputSignal<boolean>;
    /** Whether the grid should have a horizontal gap. */
    readonly noHorizontalGap: _angular_core.InputSignal<boolean>;
    /** Whether the grid should have a vertical gap. */
    readonly noVerticalGap: _angular_core.InputSignal<boolean>;
    /** @hidden */
    readonly _rowsQueryList: _angular_core.Signal<readonly LayoutGridRowDirective[]>;
    /**
     * @hidden
     * Access to the host element's ElementRef.
     */
    readonly elementRef: ElementRef<any>;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<LayoutGridComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<LayoutGridComponent, "fd-layout-grid, [fdLayoutGrid]", never, { "noGap": { "alias": "noGap"; "required": false; "isSignal": true; }; "noHorizontalGap": { "alias": "noHorizontalGap"; "required": false; "isSignal": true; }; "noVerticalGap": { "alias": "noVerticalGap"; "required": false; "isSignal": true; }; }, {}, ["_rowsQueryList"], ["*"], true, never>;
}

/**
 * @deprecated
 * Use direct imports of components and directives.
 */
declare class LayoutGridModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<LayoutGridModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<LayoutGridModule, never, [typeof LayoutGridComponent, typeof LayoutGridColDirective, typeof LayoutGridRowDirective], [typeof LayoutGridComponent, typeof LayoutGridColDirective, typeof LayoutGridRowDirective]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<LayoutGridModule>;
}

export { CSS_CLASS_NAME, GRID_COLUMNS_NUMBER, LayoutGridColDirective, LayoutGridComponent, LayoutGridModule, LayoutGridRowDirective };
