import React from 'react';
export interface OrchestratedAnimationStep {
    id: string;
    duration: number;
    delay?: number;
    easing?: string;
    transform?: {
        x?: number;
        y?: number;
        scale?: number;
        rotation?: number;
        opacity?: number;
    };
    style?: Record<string, any>;
    onStart?: () => void;
    onComplete?: () => void;
    onUpdate?: (progress: number) => void;
}
export interface OrchestrationConfig {
    autoPlay?: boolean;
    loop?: boolean;
    reverse?: boolean;
    speed?: number;
    paused?: boolean;
    parallel?: boolean;
}
export interface OrchestrationState {
    isPlaying: boolean;
    isPaused: boolean;
    currentStep: number;
    totalSteps: number;
    progress: number;
    elapsed: number;
    totalDuration: number;
}
export declare function useAnimationSequence(steps: OrchestratedAnimationStep[], config?: OrchestrationConfig): {
    ref: React.RefObject<HTMLElement>;
    state: OrchestrationState;
    play: () => void;
    pause: () => void;
    stop: () => void;
    seek: (progress: number) => void;
    totalDuration: number;
};
export declare const orchestrationPresets: {
    staggeredFadeIn: {
        id: string;
        duration: number;
        delay: number;
        transform: {
            opacity: number;
        };
    }[];
    cascadingSlideIn: {
        id: string;
        duration: number;
        delay: number;
        transform: {
            x: number;
        };
        easing: string;
    }[];
    parallelScaleIn: {
        id: string;
        duration: number;
        delay: number;
        transform: {
            scale: number;
        };
        easing: string;
    }[];
    complexOrchestration: ({
        id: string;
        duration: number;
        transform: {
            opacity: number;
            scale: number;
            x?: undefined;
        };
        delay?: undefined;
        easing?: undefined;
    } | {
        id: string;
        duration: number;
        delay: number;
        transform: {
            scale: number;
            opacity?: undefined;
            x?: undefined;
        };
        easing: string;
    } | {
        id: string;
        duration: number;
        delay: number;
        transform: {
            x: number;
            opacity?: undefined;
            scale?: undefined;
        };
        easing: string;
    })[];
};
export declare const createOrchestration: {
    fromSteps: (steps: OrchestratedAnimationStep[], config?: OrchestrationConfig) => {
        steps: OrchestratedAnimationStep[];
        config: {
            autoPlay?: boolean;
            loop?: boolean;
            reverse?: boolean;
            speed?: number;
            paused?: boolean;
            parallel?: boolean;
        };
    };
    staggered: (baseStep: Omit<OrchestratedAnimationStep, "id" | "delay">, count: number, staggerDelay: number) => OrchestratedAnimationStep[];
    parallel: (steps: Omit<OrchestratedAnimationStep, "id">[]) => OrchestratedAnimationStep[];
    sequence: (steps: Omit<OrchestratedAnimationStep, "id">[]) => OrchestratedAnimationStep[];
};
//# sourceMappingURL=useAnimationSequenceOrchestrator.d.ts.map