import { Observable } from 'rxjs';
import { DevUIGlobalConfig, DevUIGlobalConfigKey, DevUIGlobalInsideConfigKey } from './config';
import * as i0 from "@angular/core";
export declare class DevConfigService {
    private configUpdated$;
    private config;
    constructor(defaultConfig?: DevUIGlobalConfig);
    getConfigForComponent<T extends DevUIGlobalConfigKey>(componentName: T): DevUIGlobalConfig[T];
    getConfigForApi<T extends DevUIGlobalInsideConfigKey>(api: T): DevUIGlobalConfig['global'][T];
    getConfigChangeEventForComponent(componentName: DevUIGlobalConfigKey): Observable<void>;
    set<T extends DevUIGlobalConfigKey>(componentName: T, value: DevUIGlobalConfig[T]): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DevConfigService, [{ optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DevConfigService>;
}
export declare function WithConfig<T>(propertyKey?: T | string): (target: any, propName: any, originalDescriptor?: TypedPropertyDescriptor<T>) => any;
