import type { GeneralJws } from '../types/jws-types.js';
import type { MessageSigner } from '../types/signer.js';
import type { DwnEncryption, EncryptionInput } from '../utils/encryption.js';
import type { RecordsWriteMessage } from '../types/records-types.js';
/** Creates the RecordsWrite `encryption` property if encryption input is given. */
export declare function createEncryptionProperty(encryptionInput: EncryptionInput | undefined): Promise<DwnEncryption | undefined>;
/**
 * Creates the `attestation` property of a RecordsWrite message if given signature inputs; returns `undefined` otherwise.
 */
export declare function createAttestation(descriptorCid: string, signers?: MessageSigner[]): Promise<GeneralJws | undefined>;
/**
 * Creates the `signature` property in the `authorization` of a `RecordsWrite` message.
 */
export declare function createSignerSignature(input: {
    recordId: string;
    contextId: string;
    descriptorCid: string;
    attestation: GeneralJws | undefined;
    encryption: DwnEncryption | undefined;
    signer: MessageSigner;
    delegatedGrantId?: string;
    permissionGrantId?: string;
    protocolRole?: string;
}): Promise<GeneralJws>;
/**
 * Validates the structural integrity of the `attestation` property.
 * NOTE: Cryptographic verification of attestation signatures is performed in `authenticate()`.
 */
export declare function validateAttestationIntegrity(message: RecordsWriteMessage): Promise<void>;
//# sourceMappingURL=records-write-signing.d.ts.map