import { ethers } from "ethers";
import { createPermitAppVersionFunction, createRegisterAppFunction, createValidateAbilityExecutionFunction } from "../managers/chain-client";
export interface InitAccounts {
    funder: {
        ethersWallet: ethers.Wallet;
    };
    agentWalletPkpOwner: {
        ethersWallet: ethers.Wallet;
        mintAgentWalletPkp: (params: {
            abilityAndPolicyIpfsCids: string[];
        }) => Promise<{
            tokenId: string;
            publicKey: string;
            ethAddress: string;
        }>;
        permittedAuthMethods: (params: {
            agentWalletPkp: {
                tokenId: string;
                publicKey: string;
                ethAddress: string;
            };
            abilityAndPolicyIpfsCids: string[];
        }) => Promise<string[]>;
        permitAppVersion: ReturnType<typeof createPermitAppVersionFunction>;
    };
    appManager: {
        ethersWallet: ethers.Wallet;
        registerApp: ReturnType<typeof createRegisterAppFunction>;
        validateAbilityExecution: ReturnType<typeof createValidateAbilityExecutionFunction>;
    };
    delegatee: {
        ethersWallet: ethers.Wallet;
    };
}
export interface InitResult {
    accounts: InitAccounts;
    ethersAccounts: Record<string, never>;
}
export declare const init: ({ network, fundAmount, fundingAmounts, deploymentStatus, }: {
    network: "datil" | "datil-test" | "datil-dev";
    fundAmount?: string;
    fundingAmounts?: {
        appManager?: string;
        agentWalletPkpOwner?: string;
        delegatee?: string;
        pkp?: string;
    };
    deploymentStatus?: "dev" | "staging" | "production";
}) => Promise<InitResult>;
//# sourceMappingURL=init.d.ts.map