import type { Accessor } from '../../accessor/base.ts';
import { type ReplaceRequest } from '../../cache/types.ts';
import { FileStat, type PathSpec } from '../../types.ts';
import { type CreateFn, type MkdirFn, type ObjectMeta, type ObjectStoreDriver, type TruncateFn, type WriteFn } from './driver.ts';
/** Describe only the facts confirmed by a successful object write. */
export declare function writtenStat(path: PathSpec, meta: ObjectMeta | null): FileStat | null;
/**
 * Build the object write over one driver: bytes go up in one put, a stream as
 * it is produced where the store takes one, collected first where it does not.
 */
export declare function makeReplace<A extends Accessor, C>(driver: ObjectStoreDriver<A, C>): (accessor: A, request: ReplaceRequest, signal?: AbortSignal) => Promise<FileStat | null>;
export declare function makeWrite<A extends Accessor, C>(driver: ObjectStoreDriver<A, C>): WriteFn<A>;
/** Build the empty-object create over one driver. */
export declare function makeCreate<A extends Accessor, C>(driver: ObjectStoreDriver<A, C>): CreateFn<A>;
/** Build read-slice-pad-rewrite truncation over one driver. */
export declare function makeTruncate<A extends Accessor, C>(driver: ObjectStoreDriver<A, C>): TruncateFn<A>;
/** Build the marker-object mkdir over one driver. */
export declare function makeMkdir<A extends Accessor, C>(driver: ObjectStoreDriver<A, C>): MkdirFn<A>;
//# sourceMappingURL=write.d.ts.map