import { BaseSyncModel } from '../models/BaseSyncModel';
import type { ModelConfig } from '../types';
export declare function createSingletonModel<T>(config: ModelConfig, initialValue?: T): new () => BaseSyncModel<T | null> & {
    getValue(): T | null;
    setValue(value: T): void;
    update(partial: Partial<T>): void;
    clear(): void;
    reset(): void;
    transform(transformer: (value: T | null) => T): void;
    hasValue: boolean;
    equals(other: T): boolean;
    clone(): T | null;
    toggle(): void;
    increment(by?: number): void;
    decrement(by?: number): void;
    append(text: string): void;
    prepend(text: string): void;
    getProperty<K extends keyof T>(property: K): T[K] | undefined;
    setProperty<K extends keyof T>(property: K, value: T[K]): void;
    subscribeToProperty<K extends keyof T>(property: K, callback: (value: T[K] | undefined) => void): () => void;
};
