import { Observable } from 'rxjs';
import { UserPreferencesService } from '../common/user-preferences/user-preferences.service';
import { AbstractConfigurationStrategy } from './abstract-configuration-strategy';
import { GridConfigContext, GridConfigContextProvider } from './data-grid-configuration.model';
import { Column, GridConfig } from './data-grid.model';
import { LegacyGridConfigMapperService } from './legacy-grid-config-mapper.service';
import * as i0 from "@angular/core";
export interface UserPreferencesGridConfigContext extends GridConfigContext {
    key: string;
    legacyConfigKey?: string;
    legacyFilterKey?: string;
    defaultColumns?: Column[];
}
/**
 * Stores data grid configuration in form of user preferences.
 */
export declare class UserPreferencesConfigurationStrategy extends AbstractConfigurationStrategy {
    protected userPreferencesService: UserPreferencesService;
    protected context: UserPreferencesGridConfigContext;
    protected contextProvider: GridConfigContextProvider;
    protected legacyGridMapperService: LegacyGridConfigMapperService;
    constructor(userPreferencesService: UserPreferencesService, context: UserPreferencesGridConfigContext, contextProvider: GridConfigContextProvider, legacyGridMapperService: LegacyGridConfigMapperService);
    getConfig$(context?: UserPreferencesGridConfigContext): Observable<GridConfig>;
    saveConfig$(config: GridConfig, context?: UserPreferencesGridConfigContext): Observable<GridConfig>;
    static ɵfac: i0.ɵɵFactoryDeclaration<UserPreferencesConfigurationStrategy, [null, { optional: true; }, { optional: true; }, null]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<UserPreferencesConfigurationStrategy>;
}
//# sourceMappingURL=user-preferences-configuration-strategy.service.d.ts.map