export declare namespace DIF { const PRESENTATION_REQUEST = "dif/presentation-exchange/definitions@v1.0"; const PRESENTATION = "dif/presentation-exchange/submission@v1.0"; namespace Presentation { interface Definition { id: string; input_descriptors: Definition.InputDescriptor[]; format?: Definition.Format; } namespace Definition { type Format = { jwt?: { alg: string[]; }; sdjwt?: { alg: string[]; }; }; interface InputDescriptor { id: string; constraints: Constraints; name?: string; purpose?: string; format?: Format; } interface Constraints { fields: Field[]; limit_disclosure: InputLimitDisclosure; } type InputLimitDisclosure = "required" | "preferred"; interface Field { path: string[]; id?: string; purpose?: string; name?: string; filter?: Field.Filter; optional?: boolean; } namespace Field { interface Filter { type: string; pattern?: string; enum?: PredicateType[]; const?: PredicateType[]; value?: PredicateType; } } type PredicateType = string | number; } interface Request { presentation_definition: Definition; [key: string]: any; } interface Submission { id: string; definition_id: string; descriptor_map: Submission.DescriptorItem[]; } namespace Submission { type Format = "sd_jwt" | "jwt_vp" | "jwt_vc"; interface DescriptorItem { id: string; format: Format; path: string; path_nested?: DescriptorItem; } } } type EmbedTarget = { presentation_submission: Presentation.Submission; } & { [k in T]?: string[]; }; }