import { ValueKind, BrsType } from "..";
import { BrsComponent, BrsIterable } from "../components/BrsComponent";
import { Callable } from "../Callable";
/**
 * BrightScript Interface ifArray
 * https://developer.roku.com/docs/references/brightscript/interfaces/ifarray.md
 */
export declare class IfArray {
    private readonly component;
    private readonly name;
    constructor(component: BrsComponent & BrsArray);
    readonly peek: Callable;
    readonly pop: Callable;
    readonly push: Callable;
    readonly shift: Callable;
    readonly unshift: Callable;
    readonly delete: Callable;
    readonly count: Callable;
    readonly clear: Callable;
    readonly append: Callable;
}
/**
 * Interface IfArrayGet
 * https://developer.roku.com/docs/references/brightscript/interfaces/ifarrayget.md
 */
export declare class IfArrayGet {
    readonly kind = ValueKind.Object;
    private readonly component;
    constructor(component: BrsComponent & BrsArray);
    readonly getEntry: Callable;
}
/**
 * Interface IfArraySet
 * https://developer.roku.com/docs/references/brightscript/interfaces/ifarrayset.md
 */
export declare class IfArraySet {
    readonly kind = ValueKind.Object;
    private readonly component;
    constructor(component: BrsComponent & BrsArray);
    readonly setEntry: Callable;
}
export interface BrsArray extends BrsIterable {
    readonly resizable: boolean;
    readonly maxSize: number;
    getValue(): BrsType[];
    add(value: BrsType, toTail: boolean): void;
    remove(index: number): BrsType | undefined;
    clear(): void;
    updateNext(grow?: boolean, index?: number): void;
    tail(): number;
    addChildRef?: (value: BrsType | undefined) => void;
}
