import { SDK } from './namespaces';
/**
 * Internal state event handlers
 *
 * Re-emits external events containing state for externally-facing models.
 * These events may be used by developers using the Studio Kit, and
 * are used to control the flow of data through hooks such as `useProject()`.
 */
export declare const prepareInternalEvents: () => void;
type ModelName = 'User' | 'Project' | 'Source' | 'Destination' | 'Node';
type Models = {
    User: SDK.User;
    Project: SDK.Project;
    Source: SDK.Source;
    Destination: SDK.Destination;
    Node: SDK.SceneNode;
};
export declare function useModel<M extends ModelName>(model: M, id: string, cb: (model: Models[M]) => void): SDK.Disposable;
export declare function useModels<M extends ModelName>(model: M, cb: (ids: string[]) => void): SDK.Disposable;
export {};
