import { CdkTable, _CoalescedStyleScheduler, RenderRow, RowContext, StickyPositioningListener } from '@angular/cdk/table';
import { ChangeDetectorRef, ElementRef, IterableDiffers, NgZone } from '@angular/core';
import { _ViewRepeater } from '@angular/cdk/collections';
import { StyleRenderer } from '@alyle/ui';
import { Directionality } from '@angular/cdk/bidi';
import { Platform } from '@angular/cdk/platform';
import { ViewportRuler } from '@angular/cdk/scrolling';
import * as i0 from "@angular/core";
/**
 * Enables the recycle view repeater strategy, which reduces rendering latency. Not compatible with
 * tables that animate rows.
 */
export declare class LyRecycleRows {
    static ɵfac: i0.ɵɵFactoryDeclaration<LyRecycleRows, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<LyRecycleRows, "ly-table[recycleRows], table[ly-table][recycleRows]", never, {}, {}, never, never, false, never>;
}
/**
 * Wrapper for the CdkTable with Material design styles.
 */
export declare class LyTable<T> extends CdkTable<T> {
    readonly sRenderer: StyleRenderer;
    readonly classes: import("@alyle/ui").LyClasses<(theme: import("@alyle/ui").ThemeVariables & import("./styles").LyTableVariables, ref: import("@alyle/ui").ThemeRef) => {
        $name: string;
        $global: () => (_className: string) => string;
        root: () => (_className: string) => string;
        column: any;
        headerCell: (_className: string) => string;
        footerCell: any;
        cell: any;
        row: any;
        headerRow: (_className: string) => string;
        footerRow: any;
        sticky: (_className: string) => string;
        noDataRow: any;
        fixedLayout: (_className: string) => string;
    }>;
    /** Overrides the sticky CSS class set by the `CdkTable`. */
    protected stickyCssClass: string;
    /** Overrides the need to add position: sticky on every sticky cell element in `CdkTable`. */
    protected needsPositionStickyOnElement: boolean;
    /**
     * Whether to use a fixed table layout. Enabling this option will enforce consistent column widths
     * and optimize rendering sticky styles for native tables. No-op for flex tables.
     */
    get fixedLayout(): boolean;
    set fixedLayout(v: boolean);
    constructor(_differs: IterableDiffers, _changeDetectorRef: ChangeDetectorRef, _elementRef: ElementRef, role: string, _dir: Directionality, _document: any, _platform: Platform, _viewRepeater: _ViewRepeater<T, RenderRow<T>, RowContext<T>>, _coalescedStyleScheduler: _CoalescedStyleScheduler, _viewportRuler: ViewportRuler, _stickyPositioningListener: StickyPositioningListener, _ngZone: NgZone, sRenderer: StyleRenderer);
    static ɵfac: i0.ɵɵFactoryDeclaration<LyTable<any>, [null, null, null, { attribute: "role"; }, { optional: true; }, null, null, null, null, null, { optional: true; skipSelf: true; }, { optional: true; }, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LyTable<any>, "ly-table, table[ly-table]", ["lyTable"], { "fixedLayout": { "alias": "fixedLayout"; "required": false; }; }, {}, never, ["caption", "colgroup, col", "*"], false, never>;
    static ngAcceptInputType_fixedLayout: unknown;
}
