export declare type DanmukuItem = {
    text: string;
    time: number;
    /**
     * 0 scroll
     * 1 static
     */
    mode: number;
    fontSize: number;
    color?: string;
    timestamp: number;
    pool: number;
    userID: string;
    rowID: number;
    border?: string;
};
export declare type QueueItem = DanmukuItem & {
    status: 'wait' | 'emit' | 'ready' | 'stop';
    $ref: HTMLDivElement | null;
    restTime: number;
    lastTime: number;
};
export declare type ActiveDanmukuRect = {
    top: number;
    left: number;
    right: number;
    height: number;
    width: number;
    speed: number;
    distance: number;
    time?: number;
    mode?: number;
};
export declare type RootRect = {
    target: {
        mode: number;
        height: number;
        speed: number;
    };
    emits: ActiveDanmukuRect[];
    clientWidth: number;
    clientHeight: number;
    marginBottom: number;
    marginTop: number;
    antiOverlap: boolean;
};
export declare type Options = {
    source: string | Function | DanmukuItem[];
    speed?: number;
    antiOverlap?: boolean;
    useWorker?: boolean;
    synchronousPlayback?: false;
    opacity?: number;
    fontSize?: number;
    color?: string;
    margin?: [number, number];
    filter?: (danmuku: DanmukuItem) => boolean;
};
export declare type _Options = Omit<Required<Options>, 'opacity' | 'fontSize' | 'color' | 'filter'> & {
    opacity?: number;
    fontSize?: number;
    color?: string;
    filter?: (danmuku: DanmukuItem) => boolean;
};
//# sourceMappingURL=types.d.ts.map