import { Observable } from 'rxjs';
import { XuiConfig } from './config';
import * as i0 from "@angular/core";
export type XuiConfigKey = keyof XuiConfig;
export declare class XuiConfigService {
    private configUpdated$;
    private readonly config;
    constructor(defaultConfig?: XuiConfig);
    getConfigForComponent<T extends XuiConfigKey>(componentName: T): XuiConfig[T];
    getConfigChangeEventForComponent(componentName: XuiConfigKey): Observable<void>;
    set<T extends XuiConfigKey>(componentName: T, value: XuiConfig[T]): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<XuiConfigService, [{ optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<XuiConfigService>;
}
export declare function WithConfig<T>(): (target: any, propName: any, originalDescriptor?: TypedPropertyDescriptor<T>) => any;
