import { ContractClient, PermissionData, ValidateAbilityExecutionAndGetPoliciesResult } from "@lit-protocol/vincent-contracts-sdk";
import { StateManager } from "./state-manager";
export interface ChainClient {
    registerApp: (params: {
        abilityIpfsCids: string[];
        abilityPolicies: string[][];
    }) => Promise<{
        appId: number;
        appVersion: number;
    }>;
    registerNextAppVersion: (params: {
        appId: number;
        abilityIpfsCids: string[];
        abilityPolicies: string[][];
    }) => Promise<{
        appId: number;
        appVersion: number;
    }>;
    permitAppVersion: (params: {
        pkpEthAddress: string;
        appId: number;
        appVersion: number;
        abilityIpfsCids: string[];
        policyIpfsCids: string[][];
    }) => Promise<{
        txHash: string | null;
        skipped?: boolean;
    }>;
    validateAbilityExecution: (params: {
        delegateeAddress: string;
        pkpEthAddress: string;
        abilityIpfsCid: string;
    }) => Promise<ValidateAbilityExecutionAndGetPoliciesResult>;
}
export declare const createRegisterAppFunction: (stateManager: StateManager, contractClient: ContractClient, delegateeAccount: {
    address: string;
}) => ({ abilityIpfsCids, abilityPolicies, policyParams, }: {
    abilityIpfsCids: string[];
    abilityPolicies: string[][];
    policyParams: PermissionData;
}) => Promise<{
    appId: number;
    appVersion: number;
    isNew: boolean;
    isNewVersion: boolean;
    abilityIpfsCids: string[];
    abilityPolicies: string[][];
    policyParams: PermissionData;
}>;
export declare const createRegisterNextAppVersionFunction: (contractClient: ContractClient) => ({ appId, abilityIpfsCids, abilityPolicies, }: {
    appId: number;
    abilityIpfsCids: string[];
    abilityPolicies: string[][];
}) => Promise<{
    appId: number;
    appVersion: number;
}>;
export declare const createPermitAppVersionFunction: (stateManager: StateManager, contractClient: ContractClient) => ({ pkpEthAddress, appId, appVersion, abilityIpfsCids, policyIpfsCids, policyParams, }: {
    pkpEthAddress: string;
    appId: number;
    appVersion: number;
    abilityIpfsCids: string[];
    policyIpfsCids: string[][];
    policyParams: PermissionData;
}) => Promise<{
    txHash: null;
    skipped: boolean;
} | {
    txHash: string;
    skipped?: undefined;
}>;
export declare const createValidateAbilityExecutionFunction: (contractClient: ContractClient) => ({ delegateeAddress, pkpEthAddress, abilityIpfsCid, }: {
    delegateeAddress: string;
    pkpEthAddress: string;
    abilityIpfsCid: string;
}) => Promise<ValidateAbilityExecutionAndGetPoliciesResult>;
//# sourceMappingURL=chain-client.d.ts.map