declare const symbol: unique symbol;
export type Appendable<T extends ArrayBufferLike = ArrayBuffer> = Uint8ArrayList<T> | Uint8Array<T>;
/**
 * Check if object is a CID instance
 *
 * @example
 *
 * ```js
 * import { isUint8ArrayList, Uint8ArrayList } from 'uint8arraylist'
 *
 * isUint8ArrayList(true) // false
 * isUint8ArrayList([]) // false
 * isUint8ArrayList(new Uint8ArrayList()) // true
 * ```
 */
export declare function isUint8ArrayList(value: any): value is Uint8ArrayList;
export declare class Uint8ArrayList<T extends ArrayBufferLike = ArrayBufferLike> implements Iterable<Uint8Array<T>> {
    private bufs;
    length: number;
    readonly [symbol] = true;
    constructor(...data: Appendable<T>[]);
    [Symbol.iterator](): Iterator<Uint8Array<T>>;
    get byteLength(): number;
    /**
     * Add one or more `bufs` to the end of this Uint8ArrayList
     */
    append(...bufs: Appendable<T>[]): void;
    /**
     * Add all `bufs` to the end of this Uint8ArrayList
     */
    appendAll(bufs: Appendable<T>[]): void;
    /**
     * Add one or more `bufs` to the start of this Uint8ArrayList
     */
    prepend(...bufs: Appendable<T>[]): void;
    /**
     * Add all `bufs` to the start of this Uint8ArrayList
     */
    prependAll(bufs: Appendable<T>[]): void;
    /**
     * Read the value at `index`
     */
    get(index: number): number;
    /**
     * Set the value at `index` to `value`
     */
    set(index: number, value: number): void;
    /**
     * Copy bytes from `buf` to the index specified by `offset`
     */
    write(buf: Appendable<T | ArrayBuffer>, offset?: number): void;
    /**
     * Remove bytes from the front of the pool
     */
    consume(bytes: number): void;
    /**
     * Extracts a section of an array and returns a new array.
     *
     * This is a copy operation as it is with Uint8Arrays and Arrays
     * - note this is different to the behaviour of Node Buffers.
     */
    slice(beginInclusive?: number, endExclusive?: number): Uint8Array<ArrayBuffer>;
    /**
     * Returns a section of the array from the given start and end element index.
     *
     * This is a no-copy operation where the data extracted data comes from a
     * single Uint8Array internally, otherwise it is a copy operation.
     */
    subarray(beginInclusive?: number, endExclusive?: number): Uint8Array<T | ArrayBuffer>;
    /**
     * Returns a new Uint8ArrayList from the given start and end element index.
     *
     * This is a no-copy operation.
     */
    sublist(beginInclusive?: number, endExclusive?: number): Uint8ArrayList<T>;
    private _subList;
    indexOf(search: Uint8ArrayList | Uint8Array, offset?: number): number;
    getInt8(byteOffset: number): number;
    setInt8(byteOffset: number, value: number): void;
    getInt16(byteOffset: number, littleEndian?: boolean): number;
    setInt16(byteOffset: number, value: number, littleEndian?: boolean): void;
    getInt32(byteOffset: number, littleEndian?: boolean): number;
    setInt32(byteOffset: number, value: number, littleEndian?: boolean): void;
    getBigInt64(byteOffset: number, littleEndian?: boolean): bigint;
    setBigInt64(byteOffset: number, value: bigint, littleEndian?: boolean): void;
    getUint8(byteOffset: number): number;
    setUint8(byteOffset: number, value: number): void;
    getUint16(byteOffset: number, littleEndian?: boolean): number;
    setUint16(byteOffset: number, value: number, littleEndian?: boolean): void;
    getUint32(byteOffset: number, littleEndian?: boolean): number;
    setUint32(byteOffset: number, value: number, littleEndian?: boolean): void;
    getBigUint64(byteOffset: number, littleEndian?: boolean): bigint;
    setBigUint64(byteOffset: number, value: bigint, littleEndian?: boolean): void;
    getFloat32(byteOffset: number, littleEndian?: boolean): number;
    setFloat32(byteOffset: number, value: number, littleEndian?: boolean): void;
    getFloat64(byteOffset: number, littleEndian?: boolean): number;
    setFloat64(byteOffset: number, value: number, littleEndian?: boolean): void;
    equals(other: any): other is Uint8ArrayList;
    /**
     * Create a Uint8ArrayList from a pre-existing list of Uint8Arrays.  Use this
     * method if you know the total size of all the Uint8Arrays ahead of time.
     */
    static fromUint8Arrays<T extends ArrayBufferLike>(bufs: Uint8Array<T>[], length?: number): Uint8ArrayList<T>;
}
export {};
//# sourceMappingURL=index.d.ts.map