import type { GenericMessage } from './message-types.js';
import type { DwnInterfaceName, DwnMethodName } from '../index.js';
export type PermissionScope = {
    interface: DwnInterfaceName;
    method: DwnMethodName;
};
export type PermissionConditions = {
    publication?: boolean;
};
export type PermissionsRequestDescriptor = {
    interface: DwnInterfaceName.Permissions;
    method: DwnMethodName.Request;
    messageTimestamp: string;
    grantedFor: string;
    grantedTo: string;
    grantedBy: string;
    description?: string;
    scope: PermissionScope;
    conditions?: PermissionConditions;
};
export type PermissionsRequestMessage = GenericMessage & {
    descriptor: PermissionsRequestDescriptor;
};
export type PermissionsGrantDescriptor = {
    interface: DwnInterfaceName.Permissions;
    method: DwnMethodName.Grant;
    messageTimestamp: string;
    permissionsRequestId?: string;
    dateExpires?: string;
    grantedFor: string;
    grantedTo: string;
    grantedBy: string;
    description?: string;
    scope: PermissionScope;
    conditions?: PermissionConditions;
};
export type PermissionsGrantMessage = GenericMessage & {
    descriptor: PermissionsGrantDescriptor;
};
export type PermissionsRevokeDescriptor = {
    interface: DwnInterfaceName.Permissions;
    method: DwnMethodName.Revoke;
    messageTimestamp: string;
    permissionsGrantId: string;
};
export type PermissionsRevokeMessage = GenericMessage & {
    descriptor: PermissionsRevokeDescriptor;
};
//# sourceMappingURL=permissions-types.d.ts.map