Timeline Studio API Documentation - v0.26.0
    Preparing search index...
    interface UseClipsReturn {
        addClip: (
            trackId: string,
            mediaFile: MediaFile,
            startTime: number,
            duration?: number,
        ) => void;
        canPlaceClip: (
            trackId: string,
            startTime: number,
            duration: number,
            excludeClipId?: string,
        ) => boolean;
        clearClipSelection: () => void;
        clips: TimelineClip[];
        clipsByTrack: Record<string, TimelineClip[]>;
        duplicateClip: (clipId: string, targetTrackId?: string) => void;
        findClip: (clipId: string) => TimelineClip;
        findNearestClipToTime: (
            time: number,
            trackType?: TrackType,
        ) => TimelineClip;
        getClipAtTime: (trackId: string, time: number) => TimelineClip;
        getClipConflicts: (
            trackId: string,
            startTime: number,
            duration: number,
            excludeClipId?: string,
        ) => TimelineClip[];
        getClipsByTrack: (trackId: string) => TimelineClip[];
        getClipsByType: (trackType: TrackType) => TimelineClip[];
        getClipsInRange: (startTime: number, endTime: number) => TimelineClip[];
        getClipStats: () => {
            clipsByType: Record<TrackType, number>;
            selectedCount: number;
            totalClips: number;
            totalDuration: number;
        };
        isClipSelected: (clipId: string) => boolean;
        moveClip: (
            clipId: string,
            newTrackId: string,
            newStartTime: number,
        ) => void;
        removeClip: (clipId: string) => void;
        selectClip: (clipId: string, addToSelection?: boolean) => void;
        selectClipsInArea: (
            startTime: number,
            endTime: number,
            trackIds: string[],
        ) => void;
        selectedClips: TimelineClip[];
        selectMultipleClips: (clipIds: string[]) => void;
        setClipOpacity: (clipId: string, opacity: number) => void;
        setClipPosition: (
            clipId: string,
            position: { height: number; width: number; x: number; y: number },
        ) => void;
        setClipSpeed: (clipId: string, speed: number) => void;
        setClipVolume: (clipId: string, volume: number) => void;
        splitClip: (clipId: string, splitTime: number) => void;
        toggleClipReverse: (clipId: string) => void;
        trimClip: (
            clipId: string,
            newStartTime: number,
            newDuration: number,
        ) => void;
        updateClip: (clipId: string, updates: Partial<TimelineClip>) => void;
    }
    Index

    Properties

    addClip: (
        trackId: string,
        mediaFile: MediaFile,
        startTime: number,
        duration?: number,
    ) => void
    canPlaceClip: (
        trackId: string,
        startTime: number,
        duration: number,
        excludeClipId?: string,
    ) => boolean
    clearClipSelection: () => void
    clips: TimelineClip[]
    clipsByTrack: Record<string, TimelineClip[]>
    duplicateClip: (clipId: string, targetTrackId?: string) => void
    findClip: (clipId: string) => TimelineClip
    findNearestClipToTime: (time: number, trackType?: TrackType) => TimelineClip
    getClipAtTime: (trackId: string, time: number) => TimelineClip
    getClipConflicts: (
        trackId: string,
        startTime: number,
        duration: number,
        excludeClipId?: string,
    ) => TimelineClip[]
    getClipsByTrack: (trackId: string) => TimelineClip[]
    getClipsByType: (trackType: TrackType) => TimelineClip[]
    getClipsInRange: (startTime: number, endTime: number) => TimelineClip[]
    getClipStats: () => {
        clipsByType: Record<TrackType, number>;
        selectedCount: number;
        totalClips: number;
        totalDuration: number;
    }
    isClipSelected: (clipId: string) => boolean
    moveClip: (clipId: string, newTrackId: string, newStartTime: number) => void
    removeClip: (clipId: string) => void
    selectClip: (clipId: string, addToSelection?: boolean) => void
    selectClipsInArea: (
        startTime: number,
        endTime: number,
        trackIds: string[],
    ) => void
    selectedClips: TimelineClip[]
    selectMultipleClips: (clipIds: string[]) => void
    setClipOpacity: (clipId: string, opacity: number) => void
    setClipPosition: (
        clipId: string,
        position: { height: number; width: number; x: number; y: number },
    ) => void
    setClipSpeed: (clipId: string, speed: number) => void
    setClipVolume: (clipId: string, volume: number) => void
    splitClip: (clipId: string, splitTime: number) => void
    toggleClipReverse: (clipId: string) => void
    trimClip: (clipId: string, newStartTime: number, newDuration: number) => void
    updateClip: (clipId: string, updates: Partial<TimelineClip>) => void