import { HeaderMode } from './models/header-mode';
import { Observable } from 'rxjs';
import { HeaderColumn } from './models/header-column';
export interface HeaderStateInterface {
    mode: HeaderMode;
    readonly selectedHeaders$: Observable<Array<HeaderColumn>>;
    readonly selectedHeaders: Array<HeaderColumn>;
    readonly lastSelectedHeaders: Array<HeaderColumn>;
    saveState: () => void;
    restoreLastState: () => void;
    restoreLastMode: () => void;
}
/**
 * Keeps the current state of the header
 */
export declare class HeaderState implements HeaderStateInterface {
    mode: HeaderMode;
    private _lastMode;
    private _selectedHeaders$;
    private _lastSelectedHeaders;
    constructor(initialHeaders: Array<HeaderColumn>);
    get selectedHeaders$(): Observable<Array<HeaderColumn>>;
    get selectedHeaders(): Array<HeaderColumn>;
    get lastSelectedHeaders(): Array<HeaderColumn>;
    saveState(): void;
    restoreLastMode(): void;
    restoreLastState(): void;
    restoreLastHeadersToIndex(count: number): void;
    updateSelectedHeaders(newSelectedHeaders: Array<HeaderColumn>): void;
    asInterface(): HeaderStateInterface;
}
