import { Prray } from './prray';
declare class PrrayPromise<T> extends Promise<Prray<T>> {
    constructor(executor: (resolve: (prray: Prray<T>) => any, reject: (err: Error) => any) => any);
    mapAsync<U>(func: (currentValue: T, index: number, prray: Prray<T>) => Promise<U> | U): PrrayPromise<U>;
    filterAsync(func: (currentValue: T, index: number, prray: Prray<T>) => Promise<boolean> | boolean): PrrayPromise<T>;
    reduceAsync(callback: (accumulator: T, currentValue: T, index: number, array: Prray<T>) => Promise<T>): Promise<T>;
    reduceAsync<U>(callback: (accumulator: U, currentValue: T, index: number, array: Prray<T>) => Promise<U>, initialValue?: U): Promise<U>;
    reduceRightAsync(callback: (accumulator: T, currentValue: T, index: number, array: Prray<T>) => Promise<T>): Promise<T>;
    reduceRightAsync<U>(callback: (accumulator: U, currentValue: T, index: number, array: Prray<T>) => Promise<U>, initialValue?: U): Promise<U>;
    sortAsync(func?: (a: T, b: T) => Promise<number> | number): PrrayPromise<T>;
    findAsync(func: (currentValue: T, index: number, prray: Prray<T>) => Promise<boolean> | boolean): Promise<T | undefined>;
    findIndexAsync(func: (currentValue: T, index: number, prray: Prray<T>) => Promise<boolean> | boolean): Promise<number>;
    everyAsync(func: (currentValue: T, index: number, prray: Prray<T>) => Promise<boolean> | boolean): Promise<boolean>;
    someAsync(func: (currentValue: T, index: number, prray: Prray<T>) => Promise<boolean> | boolean): Promise<boolean>;
    forEachAsync(func: (currentValue: T, index: number, prray: Prray<T>) => Promise<any> | any): Promise<unknown>;
    slice(start?: number, end?: number): PrrayPromise<T>;
    map<U>(func: (currentValue: T, index: number, prray: Prray<T>) => U): PrrayPromise<U>;
    filter(func: (currentValue: T, index: number, prray: Prray<T>) => boolean): PrrayPromise<T>;
    find(func: (currentValue: T, index: number, prray: Prray<T>) => boolean): Promise<T>;
    findIndex(func: (currentValue: T, index: number, prray: Prray<T>) => boolean): Promise<number>;
    every(func: (currentValue: T, index: number, prray: Prray<T>) => boolean): Promise<boolean>;
    some(func: (currentValue: T, index: number, prray: Prray<T>) => boolean): Promise<boolean>;
    includes(element: T, fromIndex?: number): Promise<boolean>;
    indexOf(element: T, fromIndex?: number): Promise<number>;
    lastIndexOf(element: T, fromIndex?: number): Promise<number>;
    join(separator?: string): Promise<string>;
    keys(): Promise<IterableIterator<number>>;
    values(): Promise<IterableIterator<T>>;
    entries(): Promise<IterableIterator<[number, T]>>;
    fill(value: T, start?: number, end?: number): PrrayPromise<T>;
    sort(func?: (a: T, b: T) => number): PrrayPromise<T>;
    concat(...items: ConcatArray<T>[]): PrrayPromise<T>;
    concat(...items: (ConcatArray<T> | T)[]): PrrayPromise<T>;
    copyWithin(target: number, start?: number, end?: number): any;
    toString(): Promise<string>;
    toLocaleString(): Promise<string>;
    forEach(callback: (currentValue: T, index: number, prray: Prray<T>) => any): Promise<void>;
    pop(): Promise<T>;
    push(...items: T[]): Promise<number>;
    reverse(): PrrayPromise<T>;
    reduce(callback: (accumulator: T, currentValue: T, index: number, array: Prray<T>) => T): Promise<T>;
    reduce<U>(callback: (accumulator: U, currentValue: T, index: number, array: Prray<T>) => U, initialValue?: U): Promise<U>;
    reduceRight(callback: (accumulator: T, currentValue: T, index: number, array: Prray<T>) => T): Promise<T>;
    reduceRight<U>(callback: (accumulator: U, currentValue: T, index: number, array: Prray<T>) => U, initialValue?: U): Promise<U>;
    shift(): Promise<T>;
    unshift(...items: T[]): Promise<number>;
    splice(start: number, deleteCount?: number, ...items: T[]): PrrayPromise<T>;
    toArray(): Promise<T[]>;
}
declare function prraypromise<T>(promise: Promise<Prray<T>>): any;
export { PrrayPromise, prraypromise };
//# sourceMappingURL=prraypromise.d.ts.map