import { z } from 'zod';
export declare const functionAbiVariableSchema: z.ZodObject<{
    name: z.ZodString;
    type: z.ZodEnum<[string, ...string[]]>;
    internalType: z.ZodEnum<[string, ...string[]]>;
}, "strict", z.ZodTypeAny, {
    type: string;
    name: string;
    internalType: string;
}, {
    type: string;
    name: string;
    internalType: string;
}>;
export declare const functionAbiSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
    name: z.ZodString;
    type: z.ZodLiteral<"function">;
    inputs: z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        type: z.ZodEnum<[string, ...string[]]>;
        internalType: z.ZodEnum<[string, ...string[]]>;
    }, "strict", z.ZodTypeAny, {
        type: string;
        name: string;
        internalType: string;
    }, {
        type: string;
        name: string;
        internalType: string;
    }>, "many">;
    outputs: z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        type: z.ZodEnum<[string, ...string[]]>;
        internalType: z.ZodEnum<[string, ...string[]]>;
    }, "strict", z.ZodTypeAny, {
        type: string;
        name: string;
        internalType: string;
    }, {
        type: string;
        name: string;
        internalType: string;
    }>, "atleastone">;
    stateMutability: z.ZodUnion<[z.ZodLiteral<"view">, z.ZodLiteral<"pure">]>;
}, "strict", z.ZodTypeAny, {
    type: "function";
    name: string;
    inputs: {
        type: string;
        name: string;
        internalType: string;
    }[];
    outputs: [{
        type: string;
        name: string;
        internalType: string;
    }, ...{
        type: string;
        name: string;
        internalType: string;
    }[]];
    stateMutability: "view" | "pure";
}, {
    type: "function";
    name: string;
    inputs: {
        type: string;
        name: string;
        internalType: string;
    }[];
    outputs: [{
        type: string;
        name: string;
        internalType: string;
    }, ...{
        type: string;
        name: string;
        internalType: string;
    }[]];
    stateMutability: "view" | "pure";
}>, {
    type: "function";
    name: string;
    inputs: {
        type: string;
        name: string;
        internalType: string;
    }[];
    outputs: [{
        type: string;
        name: string;
        internalType: string;
    }, ...{
        type: string;
        name: string;
        internalType: string;
    }[]];
    stateMutability: "view" | "pure";
}, {
    type: "function";
    name: string;
    inputs: {
        type: string;
        name: string;
        internalType: string;
    }[];
    outputs: [{
        type: string;
        name: string;
        internalType: string;
    }, ...{
        type: string;
        name: string;
        internalType: string;
    }[]];
    stateMutability: "view" | "pure";
}>, {
    type: "function";
    name: string;
    inputs: {
        type: string;
        name: string;
        internalType: string;
    }[];
    outputs: [{
        type: string;
        name: string;
        internalType: string;
    }, ...{
        type: string;
        name: string;
        internalType: string;
    }[]];
    stateMutability: "view" | "pure";
}, {
    type: "function";
    name: string;
    inputs: {
        type: string;
        name: string;
        internalType: string;
    }[];
    outputs: [{
        type: string;
        name: string;
        internalType: string;
    }, ...{
        type: string;
        name: string;
        internalType: string;
    }[]];
    stateMutability: "view" | "pure";
}>;
export type FunctionAbiProps = z.infer<typeof functionAbiSchema>;
export declare const ContractConditionType = "contract";
export declare const contractConditionSchema: z.ZodEffects<z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
    conditionType: z.ZodString;
}, {
    conditionType: z.ZodDefault<z.ZodLiteral<"rpc">>;
    chain: z.ZodNumber;
    method: z.ZodEnum<["eth_getBalance"]>;
    parameters: z.ZodUnion<[z.ZodTuple<[z.ZodUnion<[z.ZodEffects<z.ZodString, string, string>, z.ZodLiteral<":userAddress">, z.ZodString]>, z.ZodUnion<[z.ZodUnion<[z.ZodNumber, z.ZodString, z.ZodEnum<["earliest", "finalized", "safe", "latest", "pending"]>]>, z.ZodString]>], null>, z.ZodTuple<[z.ZodUnion<[z.ZodEffects<z.ZodString, string, string>, z.ZodLiteral<":userAddress">, z.ZodString]>], null>]>;
    returnValueTest: z.ZodObject<z.objectUtil.extendShape<{
        index: z.ZodOptional<z.ZodNumber>;
        comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!="]>;
    }, {
        value: z.ZodType<any, z.ZodTypeDef, any>;
    }>, "strip", z.ZodTypeAny, {
        comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
        value?: any;
        index?: number | undefined;
    }, {
        comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
        value?: any;
        index?: number | undefined;
    }>;
}>, {
    conditionType: z.ZodDefault<z.ZodLiteral<"contract">>;
    contractAddress: z.ZodEffects<z.ZodString, string, string>;
    standardContractType: z.ZodOptional<z.ZodEnum<["ERC20", "ERC721"]>>;
    method: z.ZodString;
    functionAbi: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodObject<{
        name: z.ZodString;
        type: z.ZodLiteral<"function">;
        inputs: z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            type: z.ZodEnum<[string, ...string[]]>;
            internalType: z.ZodEnum<[string, ...string[]]>;
        }, "strict", z.ZodTypeAny, {
            type: string;
            name: string;
            internalType: string;
        }, {
            type: string;
            name: string;
            internalType: string;
        }>, "many">;
        outputs: z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            type: z.ZodEnum<[string, ...string[]]>;
            internalType: z.ZodEnum<[string, ...string[]]>;
        }, "strict", z.ZodTypeAny, {
            type: string;
            name: string;
            internalType: string;
        }, {
            type: string;
            name: string;
            internalType: string;
        }>, "atleastone">;
        stateMutability: z.ZodUnion<[z.ZodLiteral<"view">, z.ZodLiteral<"pure">]>;
    }, "strict", z.ZodTypeAny, {
        type: "function";
        name: string;
        inputs: {
            type: string;
            name: string;
            internalType: string;
        }[];
        outputs: [{
            type: string;
            name: string;
            internalType: string;
        }, ...{
            type: string;
            name: string;
            internalType: string;
        }[]];
        stateMutability: "view" | "pure";
    }, {
        type: "function";
        name: string;
        inputs: {
            type: string;
            name: string;
            internalType: string;
        }[];
        outputs: [{
            type: string;
            name: string;
            internalType: string;
        }, ...{
            type: string;
            name: string;
            internalType: string;
        }[]];
        stateMutability: "view" | "pure";
    }>, {
        type: "function";
        name: string;
        inputs: {
            type: string;
            name: string;
            internalType: string;
        }[];
        outputs: [{
            type: string;
            name: string;
            internalType: string;
        }, ...{
            type: string;
            name: string;
            internalType: string;
        }[]];
        stateMutability: "view" | "pure";
    }, {
        type: "function";
        name: string;
        inputs: {
            type: string;
            name: string;
            internalType: string;
        }[];
        outputs: [{
            type: string;
            name: string;
            internalType: string;
        }, ...{
            type: string;
            name: string;
            internalType: string;
        }[]];
        stateMutability: "view" | "pure";
    }>, {
        type: "function";
        name: string;
        inputs: {
            type: string;
            name: string;
            internalType: string;
        }[];
        outputs: [{
            type: string;
            name: string;
            internalType: string;
        }, ...{
            type: string;
            name: string;
            internalType: string;
        }[]];
        stateMutability: "view" | "pure";
    }, {
        type: "function";
        name: string;
        inputs: {
            type: string;
            name: string;
            internalType: string;
        }[];
        outputs: [{
            type: string;
            name: string;
            internalType: string;
        }, ...{
            type: string;
            name: string;
            internalType: string;
        }[]];
        stateMutability: "view" | "pure";
    }>>;
    parameters: z.ZodArray<z.ZodType<any, z.ZodTypeDef, any>, "many">;
}>, "strip", z.ZodTypeAny, {
    conditionType: "contract";
    chain: number;
    method: string;
    parameters: any[];
    returnValueTest: {
        comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
        value?: any;
        index?: number | undefined;
    };
    contractAddress: string;
    functionAbi?: {
        type: "function";
        name: string;
        inputs: {
            type: string;
            name: string;
            internalType: string;
        }[];
        outputs: [{
            type: string;
            name: string;
            internalType: string;
        }, ...{
            type: string;
            name: string;
            internalType: string;
        }[]];
        stateMutability: "view" | "pure";
    } | undefined;
    standardContractType?: "ERC20" | "ERC721" | undefined;
}, {
    chain: number;
    method: string;
    parameters: any[];
    returnValueTest: {
        comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
        value?: any;
        index?: number | undefined;
    };
    contractAddress: string;
    conditionType?: "contract" | undefined;
    functionAbi?: {
        type: "function";
        name: string;
        inputs: {
            type: string;
            name: string;
            internalType: string;
        }[];
        outputs: [{
            type: string;
            name: string;
            internalType: string;
        }, ...{
            type: string;
            name: string;
            internalType: string;
        }[]];
        stateMutability: "view" | "pure";
    } | undefined;
    standardContractType?: "ERC20" | "ERC721" | undefined;
}>, {
    conditionType: "contract";
    chain: number;
    method: string;
    parameters: any[];
    returnValueTest: {
        comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
        value?: any;
        index?: number | undefined;
    };
    contractAddress: string;
    functionAbi?: {
        type: "function";
        name: string;
        inputs: {
            type: string;
            name: string;
            internalType: string;
        }[];
        outputs: [{
            type: string;
            name: string;
            internalType: string;
        }, ...{
            type: string;
            name: string;
            internalType: string;
        }[]];
        stateMutability: "view" | "pure";
    } | undefined;
    standardContractType?: "ERC20" | "ERC721" | undefined;
}, {
    chain: number;
    method: string;
    parameters: any[];
    returnValueTest: {
        comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
        value?: any;
        index?: number | undefined;
    };
    contractAddress: string;
    conditionType?: "contract" | undefined;
    functionAbi?: {
        type: "function";
        name: string;
        inputs: {
            type: string;
            name: string;
            internalType: string;
        }[];
        outputs: [{
            type: string;
            name: string;
            internalType: string;
        }, ...{
            type: string;
            name: string;
            internalType: string;
        }[]];
        stateMutability: "view" | "pure";
    } | undefined;
    standardContractType?: "ERC20" | "ERC721" | undefined;
}>;
export type ContractConditionProps = z.infer<typeof contractConditionSchema>;
