/** @packageDocumentation
 * @module Effects
 */
import { ScreenSpaceEffectBuilder, ScreenSpaceEffectSource, Tool } from "@itwin/core-frontend";
/** Adds a screen-space effect to the selected viewport.
 * @beta
 */
export declare abstract class AddEffectTool extends Tool {
    private static readonly _registeredEffects;
    /** Name of effect as used in keyins like `fdt effect add`. Ideally one word. */
    protected abstract get effectName(): string;
    /** vertex, fragment, and optional sampleSourcePixel GLSL snippets. */
    protected abstract get source(): ScreenSpaceEffectSource;
    /** Whether the fragment shader should include built-in `textureCoordFromPosition` function. */
    protected abstract get textureCoordFromPosition(): boolean;
    /** Add uniforms, varyings, etc. */
    protected abstract defineEffect(builder: ScreenSpaceEffectBuilder): void;
    run(): Promise<boolean>;
}
/** Removes all screen-space effects from the selected viewport.
 * @beta
 */
export declare class ClearEffectsTool extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    run(): Promise<boolean>;
}
/** Requests that any viewport to which the specified effect has been applied redraw its contents.
 * Used by tools like [[VignetteConfig]] to update the view after the effect parameters are modified.
 * @beta
 */
export declare function refreshViewportsForEffect(effectName: string): void;
//# sourceMappingURL=EffectTools.d.ts.map