import * as Common from '../common/common.js'; import type { Target } from './Target.js'; export interface RegistrationInfo { capabilities: number; autostart: boolean; early?: boolean; } export type SDKModelConstructor = new (target: Target) => T; declare const registeredModels: Map>, RegistrationInfo>; export declare class SDKModel extends Common.ObjectWrapper.ObjectWrapper { #private; constructor(target: Target); target(): Target; /** * Override this method to perform tasks that are required to suspend the * model and that still need other models in an unsuspended state. */ preSuspendModel(_reason?: string): Promise; suspendModel(_reason?: string): Promise; resumeModel(): Promise; /** * Override this method to perform tasks that are required to after resuming * the model and that require all models already in an unsuspended state. */ postResumeModel(): Promise; dispose(): void; static register(modelClass: SDKModelConstructor, registrationInfo: RegistrationInfo): void; static get registeredModels(): typeof registeredModels; } export {};