export interface Effect {
    id: string;
    type: string;
}
export declare class Effects<Ef extends Effect> {
    private effects;
    length: number;
    add(e: Ef): void;
    removeById(id: string): void;
    get<Ef2 extends Ef>(idx: number | string): Ef2 | undefined;
    ofType<Ef2 extends Ef>(t: string): Array<Ef2>;
    asArray(): Array<Ef>;
    deepClone(): Effects<Ef>;
}
