import { type ClassConstructor } from '../../utils/class-constructor.type.js';
import { type Facade } from '../facade/facade.js';
import { type FacadeArray } from './facade-array.js';
import { type FacadeObjectConstructor } from '../facade/facade-object-constructor.js';
export declare class MutableFacadeArray<T extends Facade<B>, B> implements FacadeArray<T, B> {
    private readonly facadeObjectConstructor;
    private readonly encapsulatedObjectConstructor;
    private readonly encapsulatedArray;
    private readonly facadeArray;
    constructor(facadeObjectConstructor: FacadeObjectConstructor<T, B>, encapsulatedObjectConstructor: ClassConstructor<B>, encapsulatedArray: B[]);
    get length(): number;
    add(value: T): void;
    addNew(): T;
    addAll(...values: T[]): void;
    get(index: number): T;
    set(index: number, value: T): void;
    indexOf(value: T): number;
    find(predicate: (value: T) => boolean): T | undefined;
    includes(value: T): boolean;
    some(predicate: (value: T) => boolean): boolean;
    map<U>(callback: (value: T) => U): U[];
    remove(value: T): void;
    clear(): void;
    [Symbol.iterator](): IterableIterator<T>;
}
