import type BlobStoragePort from '../../ports/BlobStoragePort.ts';
import type { BlobStorageOptions } from '../../ports/BlobStoragePort.ts';
import { type SubstrateCompatibilityPolicyValue } from './SubstrateCompatibilityPolicy.ts';
interface BlobReader {
    readBlob(oid: string): Promise<Uint8Array>;
}
interface BlobWriter {
    writeBlob(content: Uint8Array | string): Promise<string>;
}
type PayloadBlobWriteRequest = {
    readonly blobPort: BlobWriter;
    readonly blobStorage: BlobStoragePort | null | undefined;
    readonly bytes: Uint8Array;
    readonly options?: BlobStorageOptions;
};
type PayloadBlobReadRequest = {
    readonly blobPort: BlobReader;
    readonly blobStorage: BlobStoragePort | null | undefined;
    readonly oid: string;
    readonly compatibilityPolicy?: SubstrateCompatibilityPolicyValue;
};
export declare function encodeCasPayloadPointer(storageOid: string): Uint8Array;
export declare function decodeCasPayloadPointer(bytes: Uint8Array): string | null;
export declare function writePayloadBlob(request: PayloadBlobWriteRequest): Promise<string>;
export declare function readPayloadBlob(request: PayloadBlobReadRequest): Promise<Uint8Array>;
export {};
