import type { KoliBriTableDataType, KoliBriTableHeaders, KoliBriTablePaginationProps, LabelPropType, PaginationPositionPropType, Stringified, TableAPI, TableStatefulCallbacksPropType, TableDataFootPropType, TableDataPropType, TableSelectionPropType, TableStates } from '../../schema';
import type { JSX } from '../../stencil-public-runtime';
export declare class KolTableStateful implements TableAPI {
    private readonly host?;
    private tableWcRef?;
    private readonly catchRef;
    private sortFunction?;
    private sortDirections;
    private sortData;
    private showPagination;
    private pageStartSlice;
    private pageEndSlice;
    private disableSort;
    private sortedColumnHead;
    _allowMultiSort?: boolean;
    _data: Stringified<KoliBriTableDataType[]>;
    _dataFoot?: Stringified<KoliBriTableDataType[]>;
    _headers: Stringified<KoliBriTableHeaders>;
    _label: string;
    _minWidth?: string;
    _pagination?: boolean | Stringified<KoliBriTablePaginationProps>;
    _paginationPosition?: PaginationPositionPropType;
    _selection?: TableSelectionPropType;
    _on?: TableStatefulCallbacksPropType;
    state: TableStates;
    validateAllowMultiSort(value?: boolean): void;
    validateData(value?: TableDataPropType): void;
    validateDataFoot(value?: TableDataFootPropType): void;
    validatePaginationPosition(value?: PaginationPositionPropType): void;
    private setSortDirection;
    private changeCellSort;
    validateHeaders(value?: Stringified<KoliBriTableHeaders>): void;
    validateLabel(value?: LabelPropType): void;
    validateMinWidth(value?: string): void;
    validateSelection(value?: TableSelectionPropType): void;
    validateOn(value?: TableStatefulCallbacksPropType): void;
    private readonly handlePagination;
    validatePagination(value?: boolean | Stringified<KoliBriTablePaginationProps>): void;
    private onSelectionChange;
    componentDidLoad(): void;
    disconnectedCallback(): void;
    componentWillLoad(): void;
    private selectDisplayedData;
    private updateSortedData;
    private renderPagination;
    private getHeaderCellSortState;
    private handleSort;
    private getSelectedData;
    private handleSelectionChange;
    getSelection(): Promise<KoliBriTableDataType[] | KoliBriTableDataType | null>;
    render(): JSX.Element;
}
