import { FfiHandle, TrackPublicationInfo, OwnedTrackPublication, TrackKind, TrackSource, EncryptionType } from '@livekit/rtc-ffi-bindings'; import { Track } from './track.js'; import './audio_source.js'; import './audio_frame.js'; import './ffi_client.js'; import '@livekit/typed-emitter'; import './video_source.js'; import './video_frame.js'; declare abstract class TrackPublication { /** @internal */ ffiHandle: FfiHandle; /** @internal */ info?: TrackPublicationInfo; track?: Track; constructor(ownedInfo: OwnedTrackPublication); get sid(): string | undefined; get name(): string | undefined; get kind(): TrackKind | undefined; get source(): TrackSource | undefined; get simulcasted(): boolean | undefined; get width(): number | undefined; get height(): number | undefined; get mimeType(): string | undefined; get muted(): boolean | undefined; get encryptionType(): EncryptionType | undefined; } declare class LocalTrackPublication extends TrackPublication { private firstSubscription; private firstSubscriptionResolver; constructor(ownedInfo: OwnedTrackPublication); waitForSubscription(): Promise; /** @internal */ resolveFirstSubscription(): void; } declare class RemoteTrackPublication extends TrackPublication { subscribed: boolean; constructor(ownedInfo: OwnedTrackPublication); setSubscribed(subscribed: boolean): void; } export { LocalTrackPublication, RemoteTrackPublication, TrackPublication };