import { DebugElement } from '@angular/core';
import { ComponentFixture } from '@angular/core/testing';
import { ValueGetter } from '@dbg-riskit/common';
import { DataTableComponent, OrderingCriteria } from '@dbg-riskit/angular-datatable';
import { Page } from './page.base';
import * as i0 from "@angular/core";
export declare class DataTableDefinition {
    debugElement: DebugElement;
    private page;
    constructor(debugElement: DebugElement, page: {
        detectChanges: () => void;
        advanceAndDetectChanges: () => void;
    });
    get component(): DataTableComponent<unknown, unknown>;
    get data(): any[];
    get element(): DebugElement;
    get header(): TableHeader;
    get sorting(): TableSorting;
    get body(): TableBody;
    get footer(): TableFooter;
    get recordsCount(): RecordsCount;
    get pager(): Pager;
}
export declare class TableHeader {
    element: DebugElement;
    private page;
    constructor(element: DebugElement, page: {
        detectChanges: () => void;
    });
    get rows(): TableHeaderRow[];
    get cells(): TableHeaderCell[];
}
export declare class TableHeaderRow {
    element: DebugElement;
    private page;
    constructor(element: DebugElement, page: {
        detectChanges: () => void;
    });
    get cells(): TableHeaderCell[];
}
export declare class TableHeaderCell {
    element: DebugElement;
    private page;
    constructor(element: DebugElement, page: {
        detectChanges: () => void;
    });
    get sortingHandle(): SortingHandle | null;
    get tooltip(): string | null;
    get title(): string;
    get colspan(): number;
    get rowspan(): number;
}
export declare class TableSorting {
    private table;
    private page;
    constructor(table: DataTableDefinition, page: {
        detectChanges: () => void;
    });
    get handles(): SortingHandle[];
    get detailRowHandles(): SortingHandle[] | null;
    get currentOrdering(): Array<OrderingCriteria<any>>;
    checkSorting(firstNRows?: number, criterium?: OrderingCriteria<any>): void;
}
export declare class SortingHandle {
    private page;
    private handle;
    constructor(page: {
        detectChanges: () => void;
    }, handle: DebugElement);
    click(): void;
}
export declare class TableBody {
    element: DebugElement;
    private page;
    constructor(element: DebugElement, page: {
        detectChanges: () => void;
    });
    get rows(): TableBodyRow[];
    get cells(): TableBodyCell[];
}
export declare class TableBodyRow {
    element: DebugElement;
    private page;
    constructor(element: DebugElement, page: {
        detectChanges: () => void;
    });
    expandRow(): void;
    get expander(): RowExpander;
    get cells(): TableBodyCell[];
    get rowDetail(): TableBodyDetail | null;
    get highlighted(): boolean;
}
export declare class RowExpander {
    element: DebugElement;
    constructor(element: DebugElement);
    get icon(): string;
    get opened(): boolean;
    get closed(): boolean;
}
export declare class TableBodyCell {
    element: DebugElement;
    constructor(element: DebugElement);
    get colspan(): number;
    get rowspan(): number;
}
export declare class TableBodyDetail {
    element: DebugElement;
    private page;
    constructor(element: DebugElement, page: {
        detectChanges: () => void;
    });
    header(): TableHeader;
    get body(): TableBodyDetailBody;
    get highlighted(): boolean;
    get colspan(): number;
}
export declare class TableBodyDetailBody {
    element: DebugElement;
    constructor(element: DebugElement);
    get rows(): TableBodyDetailRow[];
    get cells(): TableBodyCell[];
}
export declare class TableBodyDetailRow {
    element: DebugElement;
    constructor(element: DebugElement);
    get cells(): TableBodyCell[];
}
export declare class TableFooter {
    element: DebugElement;
    constructor(element: DebugElement);
    get rows(): TableFooterRow[];
    get cells(): TableBodyCell[];
}
export declare class TableFooterRow {
    element: DebugElement;
    constructor(element: DebugElement);
    get cells(): TableBodyCell[];
}
export declare class RecordsCount {
    element: DebugElement;
    constructor(element: DebugElement);
    get message(): string;
}
export declare class Pager {
    element: DebugElement;
    private page;
    constructor(element: DebugElement, page: {
        detectChanges: () => void;
        advanceAndDetectChanges: () => void;
    });
    get pageButtons(): DebugElement[];
    expectLeadingButtonsDisabled(): void;
    expectLeadingButtonsNotDisabled(): void;
    expectTrailingButtonsDisabled(): void;
    expectTrailingButtonsNotDisabled(): void;
    expectButtonNumbers(numbers: number[]): void;
    expectButtonActive(index: number): void;
    click(index: number): void;
}
export declare function chceckSorting(page: {
    detectChanges: () => void;
    dataTable: DataTableDefinition;
}, criteria: Array<ValueGetter<any>>): void;
export declare class DataTableDefinitionHosted extends Page<TestDataTableHostComponent> {
    constructor(fixture: ComponentFixture<TestDataTableHostComponent>);
    get dataTable(): DataTableDefinition;
}
export declare class TestDataTableHostComponent {
    data: any[];
    footer: any;
    constructor();
    get defaultOrdering(): Array<OrderingCriteria<any> | ValueGetter<any>>;
    get valueGetter(): (record: any) => any;
    static ɵfac: i0.ɵɵFactoryDeclaration<TestDataTableHostComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TestDataTableHostComponent, "ng-component", never, {}, {}, never, never>;
}
