import { AnonCredsModule, LegacyIndyCredentialFormatService, LegacyIndyProofFormatService, V1CredentialProtocol, V1ProofProtocol, AnonCredsCredentialFormatService, AnonCredsProofFormatService } from '@aries-framework/anoncreds';
import { AnonCredsRsModule } from '@aries-framework/anoncreds-rs';
import { AskarModule } from '@aries-framework/askar';
import { Agent, ConnectionsModule, CredentialsModule, ProofsModule, MediationRecipientModule, V2CredentialProtocol, V2ProofProtocol } from '@aries-framework/core';
import { IndyVdrModule, IndyVdrPoolConfig } from '@aries-framework/indy-vdr';
import { PushNotificationsFcmModule, PushNotificationsApnsModule } from '@aries-framework/push-notifications';
interface GetAgentModulesOptions {
    indyNetworks: IndyVdrPoolConfig[];
    mediatorInvitationUrl?: string;
}
export type BifoldAgent = Agent<ReturnType<typeof getAgentModules>>;
export declare function getAgentModules({ indyNetworks, mediatorInvitationUrl }: GetAgentModulesOptions): {
    askar: AskarModule;
    anoncredsRs: AnonCredsRsModule;
    anoncreds: AnonCredsModule;
    indyVdr: IndyVdrModule;
    connections: ConnectionsModule;
    credentials: CredentialsModule<(V1CredentialProtocol | V2CredentialProtocol<(LegacyIndyCredentialFormatService | AnonCredsCredentialFormatService)[]>)[]>;
    proofs: ProofsModule<(V1ProofProtocol | V2ProofProtocol<(LegacyIndyProofFormatService | AnonCredsProofFormatService)[]>)[]>;
    mediationRecipient: MediationRecipientModule;
    pushNotificationsFcm: PushNotificationsFcmModule;
    pushNotificationsApns: PushNotificationsApnsModule;
};
interface MyAgentContextInterface {
    loading: boolean;
    agent?: BifoldAgent;
    setAgent: (agent?: BifoldAgent) => void;
}
export declare const useAppAgent: () => MyAgentContextInterface;
export declare const createLinkSecretIfRequired: (agent: Agent) => Promise<void>;
export {};
//# sourceMappingURL=agent.d.ts.map