import { PropsWithChildren } from 'react';
import { MdocRecord, SdJwtVcRecord, W3cCredentialRecord } from '@credo-ts/core';
import { CredentialOverlay } from '@bifold/oca/build/legacy';
import { BrandingOverlay } from '@bifold/oca';
import { OpenIDCredentialType } from '../types';
type OpenIDCredentialRecord = W3cCredentialRecord | SdJwtVcRecord | MdocRecord | undefined;
export type OpenIDCredentialContext = {
    openIdState: OpenIDCredentialRecordState;
    getW3CCredentialById: (id: string) => Promise<W3cCredentialRecord | undefined>;
    getSdJwtCredentialById: (id: string) => Promise<SdJwtVcRecord | undefined>;
    getMdocCredentialById: (id: string) => Promise<MdocRecord | undefined>;
    storeCredential: (cred: W3cCredentialRecord | SdJwtVcRecord | MdocRecord) => Promise<void>;
    removeCredential: (cred: W3cCredentialRecord | SdJwtVcRecord | MdocRecord, type: OpenIDCredentialType) => Promise<void>;
    resolveBundleForCredential: (credential: SdJwtVcRecord | W3cCredentialRecord | MdocRecord) => Promise<CredentialOverlay<BrandingOverlay>>;
};
export type OpenIDCredentialRecordState = {
    openIDCredentialRecords: Array<OpenIDCredentialRecord>;
    w3cCredentialRecords: Array<W3cCredentialRecord>;
    sdJwtVcRecords: Array<SdJwtVcRecord>;
    mdocVcRecords: Array<MdocRecord>;
    isLoading: boolean;
};
interface OpenIDCredentialProviderProps {
    children: React.ReactNode;
}
export declare const OpenIDCredentialRecordProvider: React.FC<PropsWithChildren<OpenIDCredentialProviderProps>>;
export declare const useOpenIDCredentials: () => OpenIDCredentialContext;
export {};
//# sourceMappingURL=OpenIDCredentialRecordProvider.d.ts.map