import { ParentBaseData } from '../profile/data.parentbasedata.class';
import { CMS } from './cms.class';
import { SmartObjectsUnnyProfile } from '../liveops';
type Constructor<T> = {
    new (...args: any[]): T;
    getFileName(): string;
};
type Action = () => void;
export declare class Profiles {
    private cachedProfiles;
    private static instance;
    cms: CMS;
    constructor(cms: CMS);
    init(): void;
    static reset(): void;
    static forceSaveSmartObjects(): void;
    cleanUp(): void;
    static get system(): SmartObjectsUnnyProfile | null;
    get system(): SmartObjectsUnnyProfile | null;
    static get<T extends ParentBaseData>(modelClass: Constructor<T>): T | null;
    get<T extends ParentBaseData>(modelClass: Constructor<T>): T | null;
    private getProfilePrivate;
    private profileReset;
    private allBaseDataSubscriptions;
    addDataSubscription(ptr: number, paramName: string, callback: Action): void;
    removeDataSubscription(ptr: number, paramName: string, callback: Action): void;
    addWildcardSubscription(ptr: number, callback: (paramName: string) => void): void;
    removeWildcardSubscription(ptr: number, callback: (paramName: string) => void): void;
    onBaseDataParamChanged(ptr: number, paramName: string): void;
    private getUniqueIndex;
    onBaseDataDestroyed(ptr: number): void;
}
export {};
//# sourceMappingURL=profiles.class.d.ts.map