import * as React from 'react';
import { IgrGridStateInfoEventArgs } from "./igr-grid-state-info-event-args";
import { IgrGridStateInfo } from "./igr-grid-state-info";
import { IgrGridStateBaseDirective, IIgrGridStateBaseDirectiveProps } from "./igr-grid-state-base-directive";
import { GridState } from "./GridState";
/**
 * State component allows saving and restoring the state of the grid features.
 * @igxParent IgxGridComponent, IgxTreeGridComponent, IgxHierarchicalGridComponent, IgxPivotGridComponent, *
*/
export declare class IgrGridState<P extends IIgrGridStateProps = IIgrGridStateProps> extends IgrGridStateBaseDirective<P> {
    protected createImplementation(): GridState;
    /**
                                 * @hidden
                                 */
    get i(): GridState;
    constructor(props: P & Omit<React.HTMLAttributes<HTMLElement>, keyof P>);
    render(): React.DetailedReactHTMLElement<any, HTMLElement>;
    protected _elRef: HTMLElement;
    protected _getMainRef(ref: any): void;
    applyState(state: IgrGridStateInfo, features: string[]): void;
    applyStateFromString(state: string, features: string[]): void;
    getState(features: string[]): IgrGridStateInfo;
    getStateAsString(features: string[]): string;
    private _stateParsed;
    private _stateParsed_wrapped;
    /**
     * Event emitted when set state is called with a string.
     * Returns the parsed state object so that it can be further modified before applying to the grid.
    */
    get stateParsed(): (s: IgrGridState, e: IgrGridStateInfoEventArgs) => void;
    set stateParsed(ev: (s: IgrGridState, e: IgrGridStateInfoEventArgs) => void);
}
export interface IIgrGridStateProps extends IIgrGridStateBaseDirectiveProps {
    /**
     * Event emitted when set state is called with a string.
     * Returns the parsed state object so that it can be further modified before applying to the grid.
    */
    stateParsed?: (s: IgrGridState, e: IgrGridStateInfoEventArgs) => void;
}
