import { IKosDataModel, KosCreationContext } from '../../../core/core/kosModel';
import { IKosIdentifiable } from '../../../core/core/types';
import { PublicModelInterface } from '../../../core/types';
import { StudioPropertiesOptions } from './types';
export declare const MODEL_TYPE = "studio-properties-model";
/**
 * StudioPropertiesModel - Real-time KOS Studio properties management with WebSocket synchronization.
 *
 * This model provides centralized access to KOS Studio's runtime properties and configuration
 * values, enabling applications to access Studio-specific settings, tool states, and integration
 * parameters. Properties are synchronized in real-time via WebSocket topics, ensuring all
 * connected clients maintain consistent Studio state information.
 *
 * ## Key Features
 * - **Real-time synchronization** - Properties update automatically via `/kos/studio/properties` topic
 * - **Connection-scoped access** - Properties are specific to individual Studio VM connections
 * - **Fallback handling** - Graceful degradation with default values when Studio is unavailable
 * - **Observable properties** - Create reactive computed values for any property key
 * - **Session management** - Automatic WebSocket session lifecycle with proper cleanup
 *
 * ## Topic-Based Reactivity
 * The model listens to this KOS topic for real-time synchronization:
 * - **`/kos/studio/properties`** - Broadcasts Studio property changes with connection-specific routing
 *
 * ## Common Use Cases
 * - **Studio integration status** - Check if legacy tools or specific Studio features are enabled
 * - **Tool configuration** - Access Studio tool settings and preferences for UI adaptation
 * - **Connection management** - Track Studio connection state and properties for diagnostics
 * - **Feature flags** - Access Studio-specific feature toggles and experimental settings
 *
 * @interface
 * @example Basic Usage
 * ```typescript
 * const studioProps = StudioPropertiesModel.instance('studio-conn-1')
 *   .options({ connectionId: 'vm-connection-abc123' })
 *   .build();
 *
 * await studioProps.initializePropertiesSession();
 * const legacyToolSupport = studioProps.get('kos.studio.tool.legacy');
 * ```
 *
 * @group KOS Model
 * @category System Integration
 * @useDeclaredType
 *
 * @see {@link StudioPropertiesOptions} - Configuration options for StudioPropertiesModel instances
 */
export type StudioPropertiesModel = PublicModelInterface<StudioPropertiesModelImpl>;
/**
 * @ignore
 * @internal
 */
export declare class StudioPropertiesModelImpl implements IKosDataModel, IKosIdentifiable {
    /** Unique identifier for the model instance */
    id: string;
    /** Studio VM connection identifier for property routing */
    connectionId: string;
    /** WebSocket subscription cleanup function */
    private unsubscribe;
    /** Context logger for debugging and diagnostics */
    private logger;
    /** Observable data store for Studio properties */
    private data;
    constructor(modelId: string, options: StudioPropertiesOptions, context: KosCreationContext);
    /**
     * @internal
     */
    init(): Promise<void>;
    /**
     * @internal
     */
    load(): Promise<void>;
    /**
     * Terminates the WebSocket session for Studio properties.
     * Cleans up subscriptions to prevent memory leaks.
     */
    terminatePropertiesSession(): Promise<void>;
    /**
     * Initializes WebSocket session for real-time Studio property synchronization.
     * Loads initial properties and subscribes to update topics.
     */
    initializePropertiesSession(): Promise<void>;
    /**
     * Retrieves a Studio property value by key.
     * @param key Property key to retrieve
     * @returns The property value or undefined if not set
     */
    get(key: string): any;
    /**
     * Creates an observable computed property for reactive updates.
     * @param key Property key to observe
     * @returns Observable that emits when the property changes
     */
    createObservableProperty(key: string): import('mobx').IComputedValue<any>;
}
//# sourceMappingURL=studio-properties-model.d.ts.map