///
import IResourceType from '@ulixee/unblocked-specification/agent/net/IResourceType';
import IResourceMeta from '@ulixee/unblocked-specification/agent/net/IResourceMeta';
import IWaitForResourceOptions from '@ulixee/hero-interfaces/IWaitForResourceOptions';
import IResourceFilterProperties from '@ulixee/hero-interfaces/IResourceFilterProperties';
import CoreTab from './CoreTab';
import ResourceRequest from './ResourceRequest';
import ResourceResponse from './ResourceResponse';
import IWaitForResourceFilter from '../interfaces/IWaitForResourceFilter';
import { InternalPropertiesSymbol } from './internal';
import Tab from './Tab';
import IWaitForResourcesFilter from '../interfaces/IWaitForResourcesFilter';
export default class Resource {
#private;
readonly id: number;
readonly url: string;
readonly type: IResourceType;
readonly documentUrl: string;
readonly isRedirect?: boolean;
readonly request: ResourceRequest;
readonly response: ResourceResponse;
get [InternalPropertiesSymbol](): {
coreTabPromise: Promise;
resourceMeta: IResourceMeta;
};
constructor(coreTabPromise: Promise, resourceMeta: IResourceMeta);
get buffer(): Promise;
get text(): Promise;
get json(): Promise;
$detach(): Promise;
$addToDetachedResources(name: string): Promise;
static findLatest(tab: Tab, filter: IResourceFilterProperties, options: {
sinceCommandId: number;
}): Promise;
static findAll(tab: Tab, filter: IResourceFilterProperties, options: {
sinceCommandId: number;
}): Promise;
static waitForOne(tab: Tab, filter: IWaitForResourceFilter, options: IWaitForResourceOptions): Promise;
static waitForMany(tab: Tab, filter: IWaitForResourcesFilter, options: IWaitForResourceOptions): Promise;
}
export declare function createResource(coreTab: Promise, resourceMeta: IResourceMeta): Resource;