import type { CoreProtocol } from '../core/core-protocol.js';
import type { Filter } from '../types/query-types.js';
import type { MessagesFilter } from '../types/messages-types.js';
import type { RecordsWriteMessage } from '../types/records-types.js';
import type { ValidationStateReader } from '../types/validation-state-reader.js';
import type { ProtocolDefinition } from '../types/protocols-types.js';
export declare class EncryptionProtocol implements CoreProtocol {
    static readonly uri = "https://identity.foundation/dwn/protocols/encryption";
    static readonly audienceEpochPath = "audienceEpoch";
    static readonly audienceKeyPath = "audienceKey";
    static readonly grantKeyPath = "grantKey";
    static readonly definition: ProtocolDefinition;
    get uri(): string;
    get definition(): ProtocolDefinition;
    preProcessWrite(tenant: string, message: RecordsWriteMessage, validationStateReader: ValidationStateReader): Promise<void>;
    validateRecord(message: RecordsWriteMessage, dataBytes: Uint8Array): Promise<void>;
    private static preProcessAudienceEpoch;
    private static preProcessAudienceKey;
    private static preProcessGrantKey;
    private static verifyEncryptedDelivery;
    private static validateAudienceEpoch;
    private static verifyAudiencePayloadMatchesTags;
    private static getRequiredStringTag;
    private static getRequiredIntegerTag;
    private static getAudienceTags;
    private static getOptionalStringTag;
    private static verifyGrantActive;
    private static verifyGrantKeyAuthor;
    private static verifyGrantKeyRecipient;
    private static verifyGrantKeyScope;
    private static isReadScope;
    private static isBoundaryAwareSubtree;
    private static verifyRoleAudienceDefinition;
    private static verifyRoleAudienceContext;
    private static verifyWriterCanCreateRole;
    private static constructRoleParentChain;
    private static roleRuleAllowsAuthor;
    private static hasInvokedRole;
    private static resolveRoleReference;
    mapErrorToStatusCode(errorCode: string): number | undefined;
    constructAdditionalMessageFilter(filter: MessagesFilter): Filter | undefined;
}
//# sourceMappingURL=encryption.d.ts.map