///
/** @noSelfInFile */
/** @noSelfInFile */
import { Handle } from "./handle";
import { MapPlayer } from "./player";
import { Point } from "./point";
import { Widget } from "./widget";
export declare class Effect extends Handle {
readonly attachWidget?: Widget;
readonly attachPointName?: string;
/**
* @deprecated use `Effect.create` or `Effect.createAttachment` instead.
* @param modelName The path of the model that the effect will use.
* @param x
* @param y
*/
constructor(modelName: string, x: number, y: number);
/**
* @deprecated use `Effect.create` or `Effect.createAttachment` instead.
* @param modelName The path of the model that the effect will use.
* @param targetWidget The widget to attach the effect to.
* @param attachPointName The attachment point of the widget where the effect will
* be placed. Attachment points are points in a model that can be referenced to as
* areas for effects to be attached, whether it be from a spell or this function.
* If the attachment point does not exist, it will attach the effect to the model's origin.
*/
constructor(modelName: string, targetWidget: Widget, attachPointName: string);
/**
* Creates a special effect.
* @param modelName The path of the model that the effect will use.
* @param x
* @param y
*/
static create(modelName: string, x: number, y: number): Effect | undefined;
/**
* Creates a special effect attached to a widget.
* @param modelName The path of the model that the effect will use.
* @param targetWidget The widget to attach the effect to.
* @param attachPointName The attachment point of the widget where the effect will
* be placed. Attachment points are points in a model that can be referenced to as
* areas for effects to be attached, whether it be from a spell or this function.
* If the attachment point does not exist, it will attach the effect to the model's origin.
*/
static createAttachment(modelName: string, targetWidget: Widget, attachPointName: string): Effect | undefined;
/**
* Creates a spell visual effect at position.
* ```ts
* // Create Thunder Clap's caster art effect at [0,0]
* const clap = Effect.createSpell(FourCC("AHtz"), EFFECT_TYPE_CASTER, 0, 0);
* ```
*/
static createSpell(abilityId: number, effectType: effecttype, x: number, y: number): Effect | undefined;
/**
* Creates a spell visual effect at position.
* ```ts
* const red = Players[0];
* const peasant = Unit.create(red, FourCC("hpea"), 0, 0);
* // Create Thunder Clap's caster art effect attached to "origin" of peasant.
* const clap = Effect.createSpellAttachment(FourCC("AHtc"), EFFECT_TYPE_CASTER, peasant, "origin");
* clap?.destroy();
* ```
*/
static createSpellAttachment(abilityId: number, effectType: effecttype, targetWidget: Widget, attachPointName: string): Effect | undefined;
get scale(): number;
set scale(scale: number);
/**
* Warning: asynchronous
* @async
*/
get x(): number;
set x(x: number);
/**
* Warning: asynchronous
* @async
*/
get y(): number;
set y(y: number);
/**
* Warning: asynchronous
* @async
*/
get z(): number;
set z(z: number);
addSubAnimation(subAnim: subanimtype): void;
clearSubAnimations(): void;
/**
* Destroy the effect handle. This will play the effect's death animation.
*/
destroy(): void;
playAnimation(animType: animtype): void;
playWithTimeScale(animType: animtype, timeScale: number): void;
removeSubAnimation(subAnim: subanimtype): void;
resetScaleMatrix(): void;
setAlpha(alpha: number): void;
setColor(red: number, green: number, blue: number): void;
setColorByPlayer(whichPlayer: MapPlayer): void;
setHeight(height: number): void;
setOrientation(yaw: number, pitch: number, roll: number): void;
setPitch(pitch: number): void;
setPoint(p: Point): void;
setPosition(x: number, y: number, z: number): void;
setRoll(roll: number): void;
setScaleMatrix(x: number, y: number, z: number): void;
setTime(value: number): void;
setTimeScale(timeScale: number): void;
setYaw(y: number): void;
static fromHandle(handle: effect | undefined): Effect | undefined;
}