import { SdJwtVcRecord } from "../../sd-jwt-vc/repository/SdJwtVcRecord.js";
import { MdocRecord } from "../../mdoc/repository/MdocRecord.js";
import { VerifiablePresentation } from "../../dif-presentation-exchange/models/index.js";
import { W3cCredentialRecord } from "../../vc/repository/W3cCredentialRecord.js";
import { W3cV2CredentialRecord } from "../../vc/repository/W3cV2CredentialRecord.js";
import { DcqlCredentialsForRequest } from "./DcqlCredentialsForRequest.js";
import { DcqlCredential, DcqlMdocCredential, DcqlPresentationResult, DcqlQuery, DcqlQueryResult, DcqlSdJwtVcCredential, DcqlW3cVcCredential } from "dcql";

//#region src/modules/dcql/models/index.d.ts
type DcqlQuery$1 = DcqlQuery.Input | DcqlQuery.Output;
type DcqlCredential$1 = DcqlCredential.Model['Input'];
type DcqlMdocCredential$1 = DcqlMdocCredential.Model['Input'];
type DcqlSdJwtVcCredential$1 = DcqlSdJwtVcCredential.Model['Input'];
type DcqlW3cVcCredential$1 = DcqlW3cVcCredential.Model['Input'];
type DcqlFailedCredential = NonNullable<DcqlQueryResult['credential_matches'][string]['failed_credentials']>[number] & {
  record: MdocRecord | SdJwtVcRecord | W3cCredentialRecord | W3cV2CredentialRecord;
};
type DcqlValidCredential = NonNullable<DcqlQueryResult['credential_matches'][string]['valid_credentials']>[number] & {
  record: MdocRecord | SdJwtVcRecord | W3cCredentialRecord | W3cV2CredentialRecord;
};
type DcqlMatchWithRecord = (Omit<DcqlQueryResult['credential_matches'][string], 'success'> & {
  success: true;
  valid_credentials: [DcqlValidCredential, ...DcqlValidCredential[]];
  failed_credentials?: [DcqlFailedCredential, ...DcqlFailedCredential[]];
}) | (Omit<DcqlQueryResult['credential_matches'][string], 'success'> & {
  success: false;
  failed_credentials?: [DcqlFailedCredential, ...DcqlFailedCredential[]];
});
type DcqlQueryResult$1 = Omit<DcqlQueryResult.Output, 'credential_matches'> & {
  credential_matches: Record<string, DcqlMatchWithRecord>;
};
type DcqlEncodedPresentationsEntry = string | Record<string, unknown>;
type DcqlEncodedPresentations = Record<string, [DcqlEncodedPresentationsEntry, ...DcqlEncodedPresentationsEntry[]]>;
type DcqlPresentation = Record<string, [VerifiablePresentation, ...VerifiablePresentation[]]>;
type DcqlPresentationResult$1 = DcqlPresentationResult.Input;
//#endregion
export { DcqlCredential$1 as DcqlCredential, DcqlEncodedPresentations, DcqlEncodedPresentationsEntry, DcqlFailedCredential, DcqlMatchWithRecord, DcqlMdocCredential$1 as DcqlMdocCredential, DcqlPresentation, DcqlPresentationResult$1 as DcqlPresentationResult, DcqlQuery$1 as DcqlQuery, DcqlQueryResult$1 as DcqlQueryResult, DcqlSdJwtVcCredential$1 as DcqlSdJwtVcCredential, DcqlValidCredential, DcqlW3cVcCredential$1 as DcqlW3cVcCredential };
//# sourceMappingURL=index.d.ts.map