import type { BaseConfig } from "./types";
type DefaultConfig<TConfig extends BaseConfig> = {
    defaults: () => Partial<TConfig>;
    scope?: string;
    strictScope?: string;
};
export declare function getConfigDefaults<TConfig extends BaseConfig>(target: InstanceType<ClassType>): DefaultConfig<TConfig>;
export declare function withConfigDefaults<C extends () => object>(config: C): <T extends ClassType<any>>(Class: T, { kind }: ClassDecoratorContext) => T | void;
type Scope = {
    scope?: string;
    strictScope?: string;
};
export declare function getConfigScope(target: InstanceType<ClassType>): Scope;
export declare function withConfigScope(scope: string, options?: {
    strict: boolean;
}): <T extends ClassType<any>>(Class: T, { kind }: ClassDecoratorContext) => T | void;
export {};
