import { ElementColors } from './types';
import { TimelineTickConfig } from '../components/video-editor';

/**
 * Initial timeline data structure for new video editor projects.
 * Provides a default timeline with a sample text element to get started.
 *
 * @example
 * ```js
 * import { INITIAL_TIMELINE_DATA } from '@twick/video-editor';
 *
 * // Use as starting point for new projects
 * const newProject = {
 *   ...INITIAL_TIMELINE_DATA,
 *   tracks: [...INITIAL_TIMELINE_DATA.tracks, newTrack]
 * };
 * ```
 */
export declare const INITIAL_TIMELINE_DATA: {
    tracks: {
        type: string;
        id: string;
        name: string;
        elements: {
            id: string;
            trackId: string;
            name: string;
            type: string;
            s: number;
            e: number;
            props: {
                text: string;
                fill: string;
            };
        }[];
    }[];
    version: number;
};
/**
 * Minimum duration for timeline elements in seconds.
 * Used to prevent elements from having zero or negative duration.
 *
 * @example
 * ```js
 * import { MIN_DURATION } from '@twick/video-editor';
 *
 * const elementDuration = Math.max(duration, MIN_DURATION);
 * // Ensures element has at least 0.1 seconds duration
 * ```
 */
export declare const MIN_DURATION = 0.1;
/**
 * Drag operation types for timeline interactions.
 * Defines the different phases of drag operations on timeline elements.
 *
 * @example
 * ```js
 * import { DRAG_TYPE } from '@twick/video-editor';
 *
 * function handleDrag(type) {
 *   switch (type) {
 *     case DRAG_TYPE.START:
 *       // Handle drag start
 *       break;
 *     case DRAG_TYPE.MOVE:
 *       // Handle drag move
 *       break;
 *     case DRAG_TYPE.END:
 *       // Handle drag end
 *       break;
 *   }
 * }
 * ```
 */
export declare const DRAG_TYPE: {
    /** Drag operation is starting */
    readonly START: "start";
    /** Drag operation is in progress */
    readonly MOVE: "move";
    /** Drag operation has ended */
    readonly END: "end";
};
/**
 * Default zoom level for timeline view.
 * Controls the initial magnification of the timeline interface.
 *
 * @example
 * ```js
 * import { DEFAULT_TIMELINE_ZOOM } from '@twick/video-editor';
 *
 * const [zoom, setZoom] = useState(DEFAULT_TIMELINE_ZOOM);
 * // Timeline starts with 1.5x zoom
 * ```
 */
export declare const DEFAULT_TIMELINE_ZOOM = 1.5;
/**
 * Default timeline zoom configuration including min, max, step, and default values.
 * Controls the zoom behavior and constraints for the timeline view.
 *
 * @example
 * ```js
 * import { DEFAULT_TIMELINE_ZOOM_CONFIG } from '@twick/video-editor';
 *
 * // Use default zoom configuration
 * <VideoEditor
 *   editorConfig={{
 *     videoProps: { width: 1920, height: 1080 },
 *     timelineZoomConfig: DEFAULT_TIMELINE_ZOOM_CONFIG
 *   }}
 * />
 * ```
 */
export declare const DEFAULT_TIMELINE_ZOOM_CONFIG: {
    /** Minimum zoom level (10%) */
    min: number;
    /** Maximum zoom level (300%) */
    max: number;
    /** Zoom step increment/decrement (10%) */
    step: number;
    /** Default zoom level (150%) */
    default: number;
};
/**
 * Default timeline tick configurations for different duration ranges.
 * Defines major tick intervals and number of minor ticks between majors
 * to provide optimal timeline readability at various durations.
 *
 * Each configuration applies when the duration is less than the specified threshold.
 * Configurations are ordered by duration threshold ascending.
 *
 * @example
 * ```js
 * import { DEFAULT_TIMELINE_TICK_CONFIGS } from '@twick/video-editor';
 *
 * // Use default configurations
 * <VideoEditor
 *   editorConfig={{
 *     videoProps: { width: 1920, height: 1080 },
 *     timelineTickConfigs: DEFAULT_TIMELINE_TICK_CONFIGS
 *   }}
 * />
 * ```
 */
export declare const DEFAULT_TIMELINE_TICK_CONFIGS: TimelineTickConfig[];
/**
 * Default color scheme for different element types in the timeline.
 * Provides consistent visual distinction between various timeline elements.
 *
 * @example
 * ```js
 * import { DEFAULT_ELEMENT_COLORS } from '@twick/video-editor';
 *
 * const videoColor = DEFAULT_ELEMENT_COLORS.video; // "#4B2E83"
 * const textColor = DEFAULT_ELEMENT_COLORS.text;   // "#375A7F"
 *
 * // Apply colors to timeline elements
 * element.style.backgroundColor = DEFAULT_ELEMENT_COLORS[element.type];
 * ```
 */
export declare const DEFAULT_ELEMENT_COLORS: ElementColors;
/**
 * Available text fonts for video editor text elements.
 * Includes Google Fonts, display fonts, and custom CDN fonts.
 *
 * @example
 * ```js
 * import { AVAILABLE_TEXT_FONTS } from '@twick/video-editor';
 *
 * // Use Google Fonts
 * const googleFont = AVAILABLE_TEXT_FONTS.ROBOTO; // "Roboto"
 *
 * // Use decorative fonts
 * const decorativeFont = AVAILABLE_TEXT_FONTS.BANGERS; // "Bangers"
 *
 * // Apply font to text element
 * textElement.style.fontFamily = AVAILABLE_TEXT_FONTS.POPPINS;
 * ```
 */
export declare const AVAILABLE_TEXT_FONTS: {
    /** Modern sans-serif font */
    readonly RUBIK: "Rubik";
    /** Clean and readable font */
    readonly MULISH: "Mulish";
    /** Bold display font */
    readonly LUCKIEST_GUY: "Luckiest Guy";
    /** Elegant serif font */
    readonly PLAYFAIR_DISPLAY: "Playfair Display";
    /** Classic sans-serif font */
    readonly ROBOTO: "Roboto";
    /** Modern geometric font */
    readonly POPPINS: "Poppins";
    /** Comic-style display font */
    readonly BANGERS: "Bangers";
    /** Handwritten-style font */
    readonly BIRTHSTONE: "Birthstone";
    /** Elegant script font */
    readonly CORINTHIA: "Corinthia";
    /** Formal script font */
    readonly IMPERIAL_SCRIPT: "Imperial Script";
    /** Bold outline font */
    readonly KUMAR_ONE_OUTLINE: "Kumar One Outline";
    /** Light outline font */
    readonly LONDRI_OUTLINE: "Londrina Outline";
    /** Casual script font */
    readonly MARCK_SCRIPT: "Marck Script";
    /** Modern sans-serif font */
    readonly MONTSERRAT: "Montserrat";
    /** Stylish display font */
    readonly PATTAYA: "Pattaya";
    /** Unique display font */
    readonly PERALTA: "Peralta";
    /** Bold impact font */
    readonly IMPACT: "Impact";
    /** Handwritten-style font */
    readonly LUMANOSIMO: "Lumanosimo";
    /** Custom display font */
    readonly KAPAKANA: "Kapakana";
    /** Handwritten font */
    readonly HANDYRUSH: "HandyRush";
    /** Decorative font */
    readonly DASHER: "Dasher";
    /** Signature-style font */
    readonly BRITTANY_SIGNATURE: "Brittany Signature";
};
