import { DocumentLoaderWithContext } from "./data-integrity/libraries/documentLoader.js";

//#region src/modules/vc/W3cCredentialsModuleConfig.d.ts

/**
 * W3cCredentialsModuleConfigOptions defines the interface for the options of the W3cCredentialsModuleConfig class.
 * This can contain optional parameters that have default values in the config class itself.
 */
interface W3cCredentialsModuleConfigOptions {
  /**
   * Document loader to use for resolving JSON-LD objects. Takes a {@link AgentContext} as parameter,
   * and must return a {@link DocumentLoader} function.
   *
   * @example
   * ```
   * const myDocumentLoader = (agentContext: AgentContext) => {
   *   return async (url) => {
   *     if (url !== 'https://example.org') throw new Error("I don't know how to load this document")
   *
   *     return {
   *       contextUrl: null,
   *       documentUrl: url,
   *       document: null
   *     }
   *   }
   * }
   * ```
   *
   *
   * @default {@link defaultDocumentLoader}
   */
  documentLoader?: DocumentLoaderWithContext;
}
declare class W3cCredentialsModuleConfig {
  private options;
  constructor(options?: W3cCredentialsModuleConfigOptions);
  /** See {@link W3cCredentialsModuleConfigOptions.documentLoader} */
  get documentLoader(): DocumentLoaderWithContext;
}
//#endregion
export { W3cCredentialsModuleConfig, W3cCredentialsModuleConfigOptions };
//# sourceMappingURL=W3cCredentialsModuleConfig.d.ts.map