import { BaseClip } from './base-clip';
import { IClip } from './iclip';
import { EffectKey } from '../effect/glsl/gl-effect';
export declare class Effect extends BaseClip {
    readonly type = "Effect";
    ready: IClip["ready"];
    private _meta;
    get meta(): {
        duration: number;
        width: number;
        height: number;
    };
    /**
     * Unique identifier for this clip instance
     */
    id: string;
    /**
     * The effect key
     */
    effectKey: EffectKey;
    /**
     * Effect parameters / values
     */
    values: Record<string, any>;
    constructor(effectKey: EffectKey);
    clone(): Promise<this>;
    tick(_time: number): Promise<{
        video: ImageBitmap | undefined;
        state: "success";
    }>;
    split(_time: number): Promise<[this, this]>;
    toJSON(_main?: boolean): any;
    /**
     * Create an Effect instance from a JSON object
     */
    static fromObject(json: any): Promise<Effect>;
}
