import { MillisecondsAccepted, UrlAccepted } from "@ef-carbon/primitive"; import { IBaseImmutable as INodeImmutable, IBaseMutable as INodeMutable } from "../INode"; import { IImmutable as IResourceImmutable, IMutable as IResourceMutable } from "../IResource"; import { IImmutable as ITrackImmutable, IMutable as ITrackMutable } from "../ITrack"; import { IImmutable as IPlayableImmutable, IMutable as IPlayableMutable } from "../media/IPlayable"; import { Copy } from "./copy"; import Type from "./Type"; export interface IImmutable extends INodeImmutable, IResourceImmutable, IPlayableImmutable { readonly tracks: ReadonlyArray; } export interface IMutable extends INodeMutable, IResourceMutable, IPlayableMutable { tracks: Array; } export default IMutable; export interface IOptions { url: UrlAccepted; start?: MillisecondsAccepted; end?: MillisecondsAccepted; duration?: MillisecondsAccepted; tracks?: Iterable; copy?: Copy; } export declare type Init = UrlAccepted | IOptions; export interface IStatic { new (init: Init): IMutable; } export declare type IExtendedMutable = IMutable & IExtension; export declare type IExtendedImmutable = IImmutable & IExtension; export { IExtendedMutable as IExtended };