import type { WriteKind } from '../../cache/types.ts';
import { MountMode, WritePolicy } from '../../types.ts';
import type { BaseVFS } from '../../vfs/base.ts';
/**
 * Coerce a declared write-policy name to its `WritePolicy`, or refuse it.
 * Absent (`undefined`, `null`, `''`) means unconditional. Idempotent on a
 * member. Mirrors Python's `coerce_write_policy`.
 *
 * @throws if the value is not a known policy name.
 */
export declare function coerceWritePolicy(value: unknown): WritePolicy;
export declare function writeConditions(vfs: BaseVFS): readonly WriteKind[];
/** The operations this mount's backend can condition on absence. Mirrors Python's `create_conditions`. */
export declare function createConditions(vfs: BaseVFS): readonly WriteKind[];
/**
 * Refuse a write policy this mount cannot honour.
 *
 * A policy that cannot act must say so: a conditional mount whose writes would
 * go out unconditioned is the silent downgrade the policy exists to remove, so
 * it is refused at mount time. Mirrors Python's `check_write_capability`.
 *
 * @param caches whether the mount keeps a cached copy (the version a write
 *   sends is the one that copy holds)
 * @throws if the mount cannot honour the declared policy.
 */
export declare function checkWriteCapability(prefix: string, vfs: BaseVFS, policy: WritePolicy, mode: MountMode, caches: boolean): void;
//# sourceMappingURL=write_policy.d.ts.map