import type { Writable } from 'svelte/store';
import type * as I from './types';
import { Types } from './types';
export declare class Table<T> {
    #private;
    body: Writable<I.Processed.Data<T>>;
    header: Writable<I.Processed.Header>;
    config: Writable<I.Processed.Config<T>>;
    controls: Writable<I.Controls>;
    constructor();
    render({ data, columns, config }: I.Props.All<T>): void;
    static cols2rows(cols: I.ColData): I.RowData;
    static filter<T>(data: I.Processed.Data<T>, filter: I.Filter, header: I.Processed.Header, config: I.Processed.Config<T>): T[];
    static sort<T>(data: I.Processed.Data<T>, controls: I.Sort): I.Processed.Data<T>;
    static get stores(): any;
    static get self(): any;
    splitPin(header: I.Head[], updateHead?: I.Head): {
        pinned: I.Head[];
        notPinned: I.Head[];
        offsetLeft: number;
    };
    updatePin(updateHead: I.Head): void;
    updatePinnedOffsetsFrom(index: number): void;
}
export declare class Cell {
    static size2css(width: string | number): string;
}
export declare function getTypeFromString(string: string): Types;
