export type StudioProtocolTarget = { readonly id: string; readonly expiresAt: number; readonly lastFocusedAt: number; }; export type StudioProtocolInstallTarget = StudioProtocolTarget & { readonly compositionId: string; }; export type StudioProtocolInstallCapability = { readonly type: 'install-element'; readonly payloadType: 'remotion-element'; readonly payloadVersions: readonly number[]; readonly target: StudioProtocolInstallTarget | null; }; export type StudioProtocolSetLicenseKeyCapability = { readonly type: 'set-license-key'; readonly target: StudioProtocolTarget | null; }; export type StudioProtocolAddElementLibraryCapability = { readonly type: 'add-element-library'; readonly target: StudioProtocolTarget | null; }; export type StudioProtocolCapability = StudioProtocolInstallCapability | StudioProtocolSetLicenseKeyCapability | StudioProtocolAddElementLibraryCapability; export type StudioProtocolDescriptor = { readonly protocol: 'remotion-studio-protocol'; readonly protocolVersion: 1; readonly studioVersion: string; readonly projectName: string | null; readonly capabilities: readonly StudioProtocolCapability[]; }; export type StudioProtocolFetcher = (input: string | URL | Request, options?: RequestInit) => Promise; export type StudioProtocolDiscoveryDependencies = { readonly fetchFn: StudioProtocolFetcher; readonly now: () => number; readonly ports: readonly number[]; }; export declare const studioProtocolProbePorts: number[]; export declare const focusedStudioMaxAge: number; export declare const fetchWithTimeout: ({ fetchFn, options, url, }: { readonly fetchFn: StudioProtocolFetcher; readonly options: RequestInit | null; readonly url: string; }) => Promise; export declare const isStudioProtocolDescriptor: (value: unknown) => value is StudioProtocolDescriptor; export declare const parseStudioProtocolDescriptor: (value: unknown) => StudioProtocolDescriptor | null; export declare const getInstallCapability: (descriptor: StudioProtocolDescriptor) => StudioProtocolInstallCapability | null; export declare const getSetLicenseKeyCapability: (descriptor: StudioProtocolDescriptor) => StudioProtocolSetLicenseKeyCapability | null; export declare const getAddElementLibraryCapability: (descriptor: StudioProtocolDescriptor) => StudioProtocolAddElementLibraryCapability | null; export type DiscoveredStudio = { readonly descriptor: StudioProtocolDescriptor; readonly discoveredAt: number; readonly origin: string; }; export declare const discoverStudios: (dependencies: StudioProtocolDiscoveryDependencies) => Promise<{ readonly studios: DiscoveredStudio[]; readonly foundUnsupportedProtocol: boolean; readonly foundInvalidResponse: boolean; }>; export declare const isAbortError: (error: unknown) => boolean;