import type { SnapId } from "@metamask/snaps-sdk";
import type { Json, CaipAccountId, CaipChainId } from "@metamask/utils";
/**
 * Copy of the original type from
 * https://github.com/MetaMask/accounts/blob/main/packages/keyring-internal-api/src/types.ts
 */
export type InternalAccount = {
    id: string;
    type: string;
    address: string;
    options: Record<string, Json>;
    methods: string[];
    scopes: CaipChainId[];
    metadata: {
        name: string;
        snap?: {
            id: SnapId;
            enabled: boolean;
            name: string;
        };
    };
};
/**
 * Create a list of CAIP account IDs from an address and a list of scopes.
 *
 * @param address - The address to create the account IDs from.
 * @param scopes - The scopes to create the account IDs from.
 * @returns The list of CAIP account IDs.
 */
export declare function createAccountList(address: string, scopes: CaipChainId[]): CaipAccountId[];
/**
 * Create a list of CAIP chain IDs from a list of account scopes and a list of requested chain IDs.
 *
 * @param accountScopes - The account scopes to create the chain ID list from.
 * @param requestedChainIds - The requested chain IDs to filter the account scopes by.
 * @returns The list of CAIP chain IDs.
 */
export declare function createChainIdList(accountScopes: CaipChainId[], requestedChainIds?: CaipChainId[]): `${string}:${string}`[];
/**
 * Whether if the snap owns the account.
 *
 * @param snapId - The snap id.
 * @param account - The account.
 * @returns True if the snap owns the account, otherwise false.
 */
export declare function snapOwnsAccount(snapId: SnapId, account: InternalAccount): boolean;
//# sourceMappingURL=account.d.cts.map