import { EventEmitter } from '@angular/core';
import { GridFeatures, IGridState, IGridStateOptions, IgxGridStateBaseDirective } from './state-base.directive';
import * as i0 from "@angular/core";
export declare class IgxGridStateDirective extends IgxGridStateBaseDirective {
    private static ngAcceptInputType_options;
    /**
     *  An object with options determining if a certain feature state should be saved.
     * ```html
     * <igx-grid [igxGridState]="options"></igx-grid>
     * ```
     * ```typescript
     * public options = {selection: false, advancedFiltering: false};
     * ```
     */
    get options(): IGridStateOptions;
    set options(value: IGridStateOptions);
    /**
     * Gets the state of a feature or states of all grid features, unless a certain feature is disabled through the `options` property.
     *
     * @param `serialize` determines whether the returned object will be serialized to JSON string. Default value is true.
     * @param `feature` string or array of strings determining the features to be added in the state. If skipped, all features are added.
     * @returns Returns the serialized to JSON string IGridState object, or the non-serialized IGridState object.
     * ```html
     * <igx-grid [igxGridState]="options"></igx-grid>
     * ```
     * ```typescript
     * @ViewChild(IgxGridStateDirective, { static: true }) public state;
     * let state = this.state.getState(); // returns string
     * let state = this.state(false) // returns `IGridState` object
     * ```
     */
    getState(serialize?: boolean, features?: GridFeatures | GridFeatures[]): IGridState | string;
    /**
     * Restores grid features' state based on the IGridState object passed as an argument.
     *
     * @param IGridState object to restore state from.
     * @returns
     * ```html
     * <igx-grid [igxGridState]="options"></igx-grid>
     * ```
     * ```typescript
     * @ViewChild(IgxGridStateDirective, { static: true }) public state;
     * this.state.setState(gridState);
     * ```
     */
    setState(state: IGridState | string, features?: GridFeatures | GridFeatures[]): void;
    /**
     *  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.
     * ```typescript
     * this.state.stateParsed.subscribe(parsedState => parsedState.sorting.forEach(x => x.strategy = NoopSortingStrategy.instance()});
     * ```
     */
    stateParsed: EventEmitter<IGridState>;
    static ɵfac: i0.ɵɵFactoryDeclaration<IgxGridStateDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<IgxGridStateDirective, "[igxGridState]", never, { "options": { "alias": "igxGridState"; "required": false; }; }, { "stateParsed": "stateParsed"; }, never, never, true, never>;
}
