import { ValueKind, BrsType } from "..";
import { BrsComponent } from "../components/BrsComponent";
import { Callable } from "../Callable";
import { BrsArray } from "./IfArray";
/**
 * BrightScript Interface ifList
 * https://developer.roku.com/docs/references/brightscript/interfaces/iflist.md
 */
export declare class IfList {
    private readonly component;
    constructor(component: BrsComponent & BrsList);
    /** Adds typed value to head of list */
    readonly addHead: Callable;
    /** Adds typed value to tail of list */
    readonly addTail: Callable;
    /** Gets the entry at head of list and keep entry in list */
    readonly getHead: Callable;
    /** Gets the Object at tail of List and keep Object in list */
    readonly getTail: Callable;
    /** Removes entry at head of list */
    readonly removeHead: Callable;
    /** Removes entry at tail of list */
    readonly removeTail: Callable;
    /** Resets the current index or position in list to the head element */
    readonly resetIndex: Callable;
    /** Gets the entry at current index or position from the list and increments the index or position in the list */
    readonly getIndex: Callable;
    /** Removes the entry at the current index or position from the list and increments the index or position in the list */
    readonly removeIndex: Callable;
}
/**
 * Interface IfListToArray
 * https://developer.roku.com/docs/references/brightscript/interfaces/iflisttoarray.md
 */
export declare class IfListToArray {
    readonly kind = ValueKind.Object;
    private readonly component;
    constructor(component: BrsComponent & BrsArray);
    /** Returns an roArray containing the same elements as the list */
    readonly toArray: Callable;
}
export interface BrsList extends BrsArray {
    readonly listIndex: number;
    getCurrent(): BrsType;
    resetCurrent(): boolean;
}
