Interface Timeline

    interface Timeline {
        _fields: <T extends BaseNode>(
            this: T,
        ) => NodeFieldDef<T, Extract<keyof T, string>>[];
        _fieldsByKey: <T extends BaseNode>(
            this: T,
        ) => Partial<Record<string | number | symbol, NodeFieldDef<T>>>;
        _insertKeyframeAtTime: (
            key: string,
            value: unknown,
            time: Rational,
            index?: number,
        ) => void;
        _is_edit_view?: boolean;
        _positionChildAt: (node: AnyTrack, index: number) => void;
        _toggleKeyframesAt: (keys: string[], time: Rational) => void;
        _unlinkChild: (node: AnyTrack) => void;
        "[dispose]": () => void;
        animationMap: Map<string, Animation<unknown>>;
        animations: Partial<Record<string, Animation>>;
        children: AnyTrack[];
        color?: string;
        count: number;
        delete: (deep?: boolean) => void;
        dispose: (deep?: boolean) => void;
        doc: Document;
        effects: EffectList;
        enabled: boolean;
        getLocalTimeOffset: () => Rational;
        head?: AnyTrack;
        id: string;
        index: number;
        isAudio: () => this is AnyAudioNode;
        isClip: () => this is AnyClip;
        isDisposed: boolean;
        isImageClip: () => this is ImageClip;
        isMediaClip: () => this is AnyMediaClip;
        isNode: true;
        isTextClip: () => this is TextClip;
        isTimeline: () => this is Timeline;
        isTrack: () => this is AnyTrack;
        isTrackChild: () => this is AnyClip;
        isVideo: () => this is AnyVideoNode;
        markers?: never[];
        metadata?: Record<string, unknown>;
        move: (position: ChildNodePosition | undefined) => void;
        name?: string;
        next: AnyNode | undefined;
        parent?: undefined;
        prev: AnyNode | undefined;
        remove: () => void;
        search: (
            comparator: (a: AnyTrack) => number,
            value?: undefined,
            from?: number,
            to?: number,
        ) => number;
        tail?: AnyTrack;
        toJSON: () => Schema.Timeline;
        type: "timeline";
    }

    Hierarchy (View Summary)

    Index
    _fields: <T extends BaseNode>(
        this: T,
    ) => NodeFieldDef<T, Extract<keyof T, string>>[]
    _fieldsByKey: <T extends BaseNode>(
        this: T,
    ) => Partial<Record<string | number | symbol, NodeFieldDef<T>>>
    _insertKeyframeAtTime: (
        key: string,
        value: unknown,
        time: Rational,
        index?: number,
    ) => void
    _is_edit_view?: boolean
    _positionChildAt: (node: AnyTrack, index: number) => void
    _toggleKeyframesAt: (keys: string[], time: Rational) => void
    _unlinkChild: (node: AnyTrack) => void
    "[dispose]": () => void
    animationMap: Map<string, Animation<unknown>>
    animations: Partial<Record<string, Animation>>
    children: AnyTrack[]
    color?: string
    count: number
    delete: (deep?: boolean) => void
    dispose: (deep?: boolean) => void
    effects: EffectList
    enabled: boolean
    getLocalTimeOffset: () => Rational
    head?: AnyTrack
    id: string
    index: number
    isAudio: () => this is AnyAudioNode
    isClip: () => this is AnyClip
    isDisposed: boolean
    isImageClip: () => this is ImageClip
    isMediaClip: () => this is AnyMediaClip
    isNode: true
    isTextClip: () => this is TextClip
    isTimeline: () => this is Timeline
    isTrack: () => this is AnyTrack
    isTrackChild: () => this is AnyClip
    isVideo: () => this is AnyVideoNode
    markers?: never[]
    metadata?: Record<string, unknown>
    move: (position: ChildNodePosition | undefined) => void
    name?: string
    next: AnyNode | undefined
    parent?: undefined
    prev: AnyNode | undefined
    remove: () => void
    search: (
        comparator: (a: AnyTrack) => number,
        value?: undefined,
        from?: number,
        to?: number,
    ) => number
    tail?: AnyTrack
    toJSON: () => Schema.Timeline
    type: "timeline"