///
import { BufferLike, Nullable } from '@mlytics/core-ts/core/type/basic';
import { SpecConstraintTimer, Timer } from '@mlytics/core-ts/core/util/watch';
import { Buffer } from '@mlytics/core-ts/native/buffer';
declare class Resource {
protected _id: string;
protected _swarmID?: Nullable;
protected _swarmURI?: Nullable;
protected _sourceURI?: Nullable;
protected _uri: string;
protected _type?: Nullable;
protected _total?: Nullable;
protected _ctime: Timer;
protected _mtime: Timer;
protected _ptime: Timer;
protected _content: globalThis.Buffer;
protected _priority: number;
protected _startDelay: number;
protected _isShareable: boolean;
constructor(uri: string);
get id(): string;
get swarmID(): Nullable;
set swarmID(value: Nullable);
get swarmURI(): Nullable;
set swarmURI(value: Nullable);
get sourceURI(): Nullable;
set sourceURI(value: Nullable);
get uri(): string;
get type(): Nullable;
set type(value: Nullable);
get total(): Nullable;
set total(value: Nullable);
get ctime(): Timer;
get mtime(): SpecConstraintTimer;
get ptime(): Timer;
set ptime(value: Timer);
get size(): number;
get content(): Buffer;
get priority(): number;
set priority(value: number);
get startDelay(): number;
set startDelay(value: number);
get isShareable(): boolean;
set isShareable(value: boolean);
get completion(): number;
get isComplete(): boolean;
concat(options: ResourceConcatOptions): void;
nextRange(): ResourceRange;
toJSON(): unknown;
toString(): string;
static makeID(uri: string): string;
}
type ResourceRange = {
start: number;
end: number;
};
type ResourceConcatOptions = {
chunk: BufferLike;
range: ResourceRange;
};
type ResourceStat = {
id: string;
completion: number;
};
export { Resource, ResourceRange, ResourceConcatOptions, ResourceStat };