import { Clip } from '../clips/tav-clip';
import { Composition } from '../clips/tav-composition';
import { tav } from '../tav';
/**
 * Effect takes audiovisual outputs from other clips as its inputs and generate new audiovisual
 * outputs from them.
 * @category Effects
 */
export declare class Effect extends Clip {
    readonly type: string;
    protected readonly inputs: Clip[];
    /**
     * Adds a clip as one input source.
     * @param clip input clip
     */
    addInput(clip: Clip): void;
    /**
     * Removes the specified clip from input sources.
     * @param clip remove clip
     */
    removeInput(clip: Clip): void;
    /**
     * Removes all clips from input sources.
     */
    removeAllInputs(): void;
    /**
     * get all clips
     */
    getAllInputs(): Clip[];
    /**
     * @ignore
     */
    hasFakeClipNativeInvalidated(): boolean;
    build(): Promise<tav.Clip>;
    protected updateClip(effect: tav.Effect): Promise<void>;
    protected attachToParent(parent?: Composition): void;
}
