import { AccountId } from 'caip'; import { type PublicClient } from 'viem'; import { type EvmPersistedAddress } from '../../state'; import type { LibQCStorage } from '../../storage'; import { type ValidatorConfig } from './config'; import type { AuthorizedAccount } from './types'; /** * Get an authorized account for the specified validator type * * Factory function that creates the appropriate authorized account * implementation based on the validator configuration. * * The chain ID is inferred from the publicClient's chain configuration. * * @param publicClient The public client for blockchain interactions * @param accountId The account ID * @param persistedAddress The persisted address data * @param validatorConfig The validator configuration * @param storage Storage for persisting derived keys * @returns An authorized account implementation * * @throws {Error} If the validator type is not supported * @throws {MissingChainError} If publicClient.chain is undefined or doesn't have an id */ export declare function getAuthorizedAccount(publicClient: PublicClient, accountId: AccountId, persistedAddress: EvmPersistedAddress, _validatorConfig: ValidatorConfig, storage: LibQCStorage): Promise;