import AbstractDataset from './abstract';
import CollectionDataset from './collection';
import ColumnDataset from './column';
import { dataIndexColumnValueType, dataIndexType } from '../../types';
export declare type indexColumnsType = [ColumnDataset, dataIndexColumnValueType];
export default class IndexDataset extends AbstractDataset<CollectionDataset> {
    protected index: dataIndexType;
    protected name: string;
    protected columns: indexColumnsType[];
    protected properties: dataIndexType['properties'];
    protected readonly: boolean;
    constructor(index: dataIndexType, collection: CollectionDataset);
    setReference(): void;
    getName(): string;
    setName(name: string): void;
    getColumns(): [ColumnDataset, dataIndexColumnValueType][];
    getColumnsNormalize(): {
        [k: string]: dataIndexColumnValueType;
    };
    setColumns(columns: indexColumnsType[]): void;
    hasColumn(name: string): boolean;
    getProperty<K extends keyof dataIndexType['properties']>(key: K): dataIndexType['properties'][K];
    setProperty<K extends keyof dataIndexType['properties']>(key: K, value: dataIndexType['properties'][K]): void;
    isReadonly(): boolean;
    remove(): void;
    getCollection(): CollectionDataset;
    getObject(): dataIndexType;
}
