import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "../common";
export declare namespace ITemplateFactory {
    type DeploymentInfoStruct = {
        exists: PromiseOrValue<boolean>;
        block: PromiseOrValue<BigNumberish>;
        timestamp: PromiseOrValue<BigNumberish>;
        sender: PromiseOrValue<string>;
        templateId: PromiseOrValue<BytesLike>;
        version: PromiseOrValue<BigNumberish>;
        args: PromiseOrValue<BytesLike>;
        functionCalls: PromiseOrValue<BytesLike>[];
        cloned: PromiseOrValue<boolean>;
    };
    type DeploymentInfoStructOutput = [
        boolean,
        BigNumber,
        BigNumber,
        string,
        string,
        BigNumber,
        string,
        string[],
        boolean
    ] & {
        exists: boolean;
        block: BigNumber;
        timestamp: BigNumber;
        sender: string;
        templateId: string;
        version: BigNumber;
        args: string;
        functionCalls: string[];
        cloned: boolean;
    };
    type VersionStruct = {
        deprecated: PromiseOrValue<boolean>;
        implementation: PromiseOrValue<string>;
        creationCode: PromiseOrValue<BytesLike>;
        totalParts: PromiseOrValue<BigNumberish>;
        partsUploaded: PromiseOrValue<BigNumberish>;
        instances: PromiseOrValue<string>[];
    };
    type VersionStructOutput = [
        boolean,
        string,
        string,
        BigNumber,
        BigNumber,
        string[]
    ] & {
        deprecated: boolean;
        implementation: string;
        creationCode: string;
        totalParts: BigNumber;
        partsUploaded: BigNumber;
        instances: string[];
    };
}
export interface TemplateFactoryInterface extends utils.Interface {
    functions: {
        "FUNCTION_CALL_ROLE()": FunctionFragment;
        "MANAGE_TEMPLATE_ROLE()": FunctionFragment;
        "PUBLIC_ROLE()": FunctionFragment;
        "SOMA()": FunctionFragment;
        "TOKEN_RECOVERY_ROLE()": FunctionFragment;
        "cloneTemplate(bytes32,uint256,bytes[],bytes32)": FunctionFragment;
        "deployRole(bytes32)": FunctionFragment;
        "deployTemplate(bytes32,uint256,bytes,bytes[],bytes32)": FunctionFragment;
        "deployedByFactory(address)": FunctionFragment;
        "deploymentInfo(address)": FunctionFragment;
        "deprecateVersion(bytes32,uint256)": FunctionFragment;
        "disableTemplate(bytes32)": FunctionFragment;
        "enableTemplate(bytes32)": FunctionFragment;
        "functionCall(address,bytes)": FunctionFragment;
        "getRoleAdmin(bytes32)": FunctionFragment;
        "hasRole(bytes32,address)": FunctionFragment;
        "initCodeHash(bytes32,uint256,bytes)": FunctionFragment;
        "latestVersion(bytes32)": FunctionFragment;
        "multicall(bytes[])": FunctionFragment;
        "name()": FunctionFragment;
        "pause()": FunctionFragment;
        "paused()": FunctionFragment;
        "predictCloneAddress(bytes32,uint256,bytes32)": FunctionFragment;
        "predictDeployAddress(bytes32,uint256,bytes,bytes32)": FunctionFragment;
        "recoverTokens(address,address,uint256)": FunctionFragment;
        "supportsInterface(bytes4)": FunctionFragment;
        "templateInstances(bytes32)": FunctionFragment;
        "undeprecateVersion(bytes32,uint256)": FunctionFragment;
        "unpause()": FunctionFragment;
        "updateDeployRole(bytes32,bytes32)": FunctionFragment;
        "uploadTemplate(bytes32,bytes,uint256,address)": FunctionFragment;
        "uploadTemplatePart(bytes32,uint256,bytes)": FunctionFragment;
        "version(bytes32,uint256)": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "FUNCTION_CALL_ROLE" | "MANAGE_TEMPLATE_ROLE" | "PUBLIC_ROLE" | "SOMA" | "TOKEN_RECOVERY_ROLE" | "cloneTemplate" | "deployRole" | "deployTemplate" | "deployedByFactory" | "deploymentInfo" | "deprecateVersion" | "disableTemplate" | "enableTemplate" | "functionCall" | "getRoleAdmin" | "hasRole" | "initCodeHash" | "latestVersion" | "multicall" | "name" | "pause" | "paused" | "predictCloneAddress" | "predictDeployAddress" | "recoverTokens" | "supportsInterface" | "templateInstances" | "undeprecateVersion" | "unpause" | "updateDeployRole" | "uploadTemplate" | "uploadTemplatePart" | "version"): FunctionFragment;
    encodeFunctionData(functionFragment: "FUNCTION_CALL_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "MANAGE_TEMPLATE_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "PUBLIC_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "SOMA", values?: undefined): string;
    encodeFunctionData(functionFragment: "TOKEN_RECOVERY_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "cloneTemplate", values: [
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>[],
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: "deployRole", values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: "deployTemplate", values: [
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>[],
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: "deployedByFactory", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "deploymentInfo", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "deprecateVersion", values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "disableTemplate", values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: "enableTemplate", values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: "functionCall", values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: "getRoleAdmin", values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: "hasRole", values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "initCodeHash", values: [
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: "latestVersion", values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: "multicall", values: [PromiseOrValue<BytesLike>[]]): string;
    encodeFunctionData(functionFragment: "name", values?: undefined): string;
    encodeFunctionData(functionFragment: "pause", values?: undefined): string;
    encodeFunctionData(functionFragment: "paused", values?: undefined): string;
    encodeFunctionData(functionFragment: "predictCloneAddress", values: [
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: "predictDeployAddress", values: [
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: "recoverTokens", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "supportsInterface", values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: "templateInstances", values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: "undeprecateVersion", values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "unpause", values?: undefined): string;
    encodeFunctionData(functionFragment: "updateDeployRole", values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: "uploadTemplate", values: [
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: "uploadTemplatePart", values: [
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: "version", values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: "FUNCTION_CALL_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "MANAGE_TEMPLATE_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "PUBLIC_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "SOMA", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "TOKEN_RECOVERY_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "cloneTemplate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "deployRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "deployTemplate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "deployedByFactory", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "deploymentInfo", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "deprecateVersion", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "disableTemplate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "enableTemplate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "functionCall", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRoleAdmin", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "initCodeHash", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "latestVersion", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "predictCloneAddress", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "predictDeployAddress", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "recoverTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "templateInstances", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "undeprecateVersion", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateDeployRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "uploadTemplate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "uploadTemplatePart", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "version", data: BytesLike): Result;
    events: {
        "DeployRoleUpdated(bytes32,bytes32,bytes32,address)": EventFragment;
        "FunctionCalled(address,bytes,bytes,address)": EventFragment;
        "Initialized(uint8)": EventFragment;
        "Paused(address)": EventFragment;
        "TemplateCloned(address,bytes32,uint256,bytes[],address)": EventFragment;
        "TemplateDeployed(address,bytes32,uint256,bytes,bytes[],address)": EventFragment;
        "TemplateDisabled(bytes32,address)": EventFragment;
        "TemplateEnabled(bytes32,address)": EventFragment;
        "TemplateVersionCreated(bytes32,uint256,address,address)": EventFragment;
        "TemplateVersionDeprecated(bytes32,uint256,address)": EventFragment;
        "TemplateVersionUndeprecated(bytes32,uint256,address)": EventFragment;
        "TokensRecovered(address,address,uint256,address)": EventFragment;
        "Unpaused(address)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "DeployRoleUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "FunctionCalled"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Paused"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TemplateCloned"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TemplateDeployed"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TemplateDisabled"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TemplateEnabled"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TemplateVersionCreated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TemplateVersionDeprecated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TemplateVersionUndeprecated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TokensRecovered"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Unpaused"): EventFragment;
}
export interface DeployRoleUpdatedEventObject {
    templateId: string;
    prevRole: string;
    newRole: string;
    sender: string;
}
export declare type DeployRoleUpdatedEvent = TypedEvent<[
    string,
    string,
    string,
    string
], DeployRoleUpdatedEventObject>;
export declare type DeployRoleUpdatedEventFilter = TypedEventFilter<DeployRoleUpdatedEvent>;
export interface FunctionCalledEventObject {
    target: string;
    data: string;
    result: string;
    sender: string;
}
export declare type FunctionCalledEvent = TypedEvent<[
    string,
    string,
    string,
    string
], FunctionCalledEventObject>;
export declare type FunctionCalledEventFilter = TypedEventFilter<FunctionCalledEvent>;
export interface InitializedEventObject {
    version: number;
}
export declare type InitializedEvent = TypedEvent<[number], InitializedEventObject>;
export declare type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
export interface PausedEventObject {
    account: string;
}
export declare type PausedEvent = TypedEvent<[string], PausedEventObject>;
export declare type PausedEventFilter = TypedEventFilter<PausedEvent>;
export interface TemplateClonedEventObject {
    instance: string;
    templateId: string;
    version: BigNumber;
    functionCalls: string[];
    sender: string;
}
export declare type TemplateClonedEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    string[],
    string
], TemplateClonedEventObject>;
export declare type TemplateClonedEventFilter = TypedEventFilter<TemplateClonedEvent>;
export interface TemplateDeployedEventObject {
    instance: string;
    templateId: string;
    version: BigNumber;
    args: string;
    functionCalls: string[];
    sender: string;
}
export declare type TemplateDeployedEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    string,
    string[],
    string
], TemplateDeployedEventObject>;
export declare type TemplateDeployedEventFilter = TypedEventFilter<TemplateDeployedEvent>;
export interface TemplateDisabledEventObject {
    templateId: string;
    sender: string;
}
export declare type TemplateDisabledEvent = TypedEvent<[
    string,
    string
], TemplateDisabledEventObject>;
export declare type TemplateDisabledEventFilter = TypedEventFilter<TemplateDisabledEvent>;
export interface TemplateEnabledEventObject {
    templateId: string;
    sender: string;
}
export declare type TemplateEnabledEvent = TypedEvent<[
    string,
    string
], TemplateEnabledEventObject>;
export declare type TemplateEnabledEventFilter = TypedEventFilter<TemplateEnabledEvent>;
export interface TemplateVersionCreatedEventObject {
    templateId: string;
    version: BigNumber;
    implementation: string;
    sender: string;
}
export declare type TemplateVersionCreatedEvent = TypedEvent<[
    string,
    BigNumber,
    string,
    string
], TemplateVersionCreatedEventObject>;
export declare type TemplateVersionCreatedEventFilter = TypedEventFilter<TemplateVersionCreatedEvent>;
export interface TemplateVersionDeprecatedEventObject {
    templateId: string;
    version: BigNumber;
    sender: string;
}
export declare type TemplateVersionDeprecatedEvent = TypedEvent<[
    string,
    BigNumber,
    string
], TemplateVersionDeprecatedEventObject>;
export declare type TemplateVersionDeprecatedEventFilter = TypedEventFilter<TemplateVersionDeprecatedEvent>;
export interface TemplateVersionUndeprecatedEventObject {
    templateId: string;
    version: BigNumber;
    sender: string;
}
export declare type TemplateVersionUndeprecatedEvent = TypedEvent<[
    string,
    BigNumber,
    string
], TemplateVersionUndeprecatedEventObject>;
export declare type TemplateVersionUndeprecatedEventFilter = TypedEventFilter<TemplateVersionUndeprecatedEvent>;
export interface TokensRecoveredEventObject {
    token: string;
    to: string;
    amount: BigNumber;
    sender: string;
}
export declare type TokensRecoveredEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    string
], TokensRecoveredEventObject>;
export declare type TokensRecoveredEventFilter = TypedEventFilter<TokensRecoveredEvent>;
export interface UnpausedEventObject {
    account: string;
}
export declare type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>;
export declare type UnpausedEventFilter = TypedEventFilter<UnpausedEvent>;
export interface TemplateFactory extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: TemplateFactoryInterface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {
        FUNCTION_CALL_ROLE(overrides?: CallOverrides): Promise<[string]>;
        MANAGE_TEMPLATE_ROLE(overrides?: CallOverrides): Promise<[string]>;
        PUBLIC_ROLE(overrides?: CallOverrides): Promise<[string]>;
        SOMA(overrides?: CallOverrides): Promise<[string]>;
        TOKEN_RECOVERY_ROLE(overrides?: CallOverrides): Promise<[string]>;
        cloneTemplate(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, functionCalls: PromiseOrValue<BytesLike>[], salt: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        deployRole(templateId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        deployTemplate(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, args: PromiseOrValue<BytesLike>, functionCalls: PromiseOrValue<BytesLike>[], salt: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        deployedByFactory(instance: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        deploymentInfo(instance: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[ITemplateFactory.DeploymentInfoStructOutput]>;
        deprecateVersion(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        disableTemplate(templateId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        enableTemplate(templateId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        functionCall(target: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        initCodeHash(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, args: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        latestVersion(templateId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber]>;
        multicall(data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        name(overrides?: CallOverrides): Promise<[string]>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        predictCloneAddress(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, salt: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        predictDeployAddress(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, args: PromiseOrValue<BytesLike>, salt: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        recoverTokens(token: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        templateInstances(templateId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string[]]>;
        undeprecateVersion(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateDeployRole(templateId: PromiseOrValue<BytesLike>, _deployRole: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        uploadTemplate(templateId: PromiseOrValue<BytesLike>, initialPart: PromiseOrValue<BytesLike>, totalParts: PromiseOrValue<BigNumberish>, implementation: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        uploadTemplatePart(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, part: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        version(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            ITemplateFactory.VersionStructOutput
        ] & {
            version_: ITemplateFactory.VersionStructOutput;
        }>;
    };
    FUNCTION_CALL_ROLE(overrides?: CallOverrides): Promise<string>;
    MANAGE_TEMPLATE_ROLE(overrides?: CallOverrides): Promise<string>;
    PUBLIC_ROLE(overrides?: CallOverrides): Promise<string>;
    SOMA(overrides?: CallOverrides): Promise<string>;
    TOKEN_RECOVERY_ROLE(overrides?: CallOverrides): Promise<string>;
    cloneTemplate(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, functionCalls: PromiseOrValue<BytesLike>[], salt: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    deployRole(templateId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    deployTemplate(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, args: PromiseOrValue<BytesLike>, functionCalls: PromiseOrValue<BytesLike>[], salt: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    deployedByFactory(instance: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    deploymentInfo(instance: PromiseOrValue<string>, overrides?: CallOverrides): Promise<ITemplateFactory.DeploymentInfoStructOutput>;
    deprecateVersion(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    disableTemplate(templateId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    enableTemplate(templateId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    functionCall(target: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    initCodeHash(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, args: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    latestVersion(templateId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
    multicall(data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    name(overrides?: CallOverrides): Promise<string>;
    pause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    predictCloneAddress(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, salt: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    predictDeployAddress(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, args: PromiseOrValue<BytesLike>, salt: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    recoverTokens(token: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    templateInstances(templateId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string[]>;
    undeprecateVersion(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unpause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateDeployRole(templateId: PromiseOrValue<BytesLike>, _deployRole: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    uploadTemplate(templateId: PromiseOrValue<BytesLike>, initialPart: PromiseOrValue<BytesLike>, totalParts: PromiseOrValue<BigNumberish>, implementation: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    uploadTemplatePart(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, part: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    version(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<ITemplateFactory.VersionStructOutput>;
    callStatic: {
        FUNCTION_CALL_ROLE(overrides?: CallOverrides): Promise<string>;
        MANAGE_TEMPLATE_ROLE(overrides?: CallOverrides): Promise<string>;
        PUBLIC_ROLE(overrides?: CallOverrides): Promise<string>;
        SOMA(overrides?: CallOverrides): Promise<string>;
        TOKEN_RECOVERY_ROLE(overrides?: CallOverrides): Promise<string>;
        cloneTemplate(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, functionCalls: PromiseOrValue<BytesLike>[], salt: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        deployRole(templateId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        deployTemplate(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, args: PromiseOrValue<BytesLike>, functionCalls: PromiseOrValue<BytesLike>[], salt: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        deployedByFactory(instance: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        deploymentInfo(instance: PromiseOrValue<string>, overrides?: CallOverrides): Promise<ITemplateFactory.DeploymentInfoStructOutput>;
        deprecateVersion(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        disableTemplate(templateId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        enableTemplate(templateId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        functionCall(target: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        initCodeHash(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, args: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        latestVersion(templateId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        multicall(data: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<string[]>;
        name(overrides?: CallOverrides): Promise<string>;
        pause(overrides?: CallOverrides): Promise<void>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        predictCloneAddress(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, salt: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        predictDeployAddress(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, args: PromiseOrValue<BytesLike>, salt: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        recoverTokens(token: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        templateInstances(templateId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string[]>;
        undeprecateVersion(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        unpause(overrides?: CallOverrides): Promise<void>;
        updateDeployRole(templateId: PromiseOrValue<BytesLike>, _deployRole: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        uploadTemplate(templateId: PromiseOrValue<BytesLike>, initialPart: PromiseOrValue<BytesLike>, totalParts: PromiseOrValue<BigNumberish>, implementation: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        uploadTemplatePart(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, part: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        version(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<ITemplateFactory.VersionStructOutput>;
    };
    filters: {
        "DeployRoleUpdated(bytes32,bytes32,bytes32,address)"(templateId?: PromiseOrValue<BytesLike> | null, prevRole?: null, newRole?: null, sender?: PromiseOrValue<string> | null): DeployRoleUpdatedEventFilter;
        DeployRoleUpdated(templateId?: PromiseOrValue<BytesLike> | null, prevRole?: null, newRole?: null, sender?: PromiseOrValue<string> | null): DeployRoleUpdatedEventFilter;
        "FunctionCalled(address,bytes,bytes,address)"(target?: PromiseOrValue<string> | null, data?: null, result?: null, sender?: PromiseOrValue<string> | null): FunctionCalledEventFilter;
        FunctionCalled(target?: PromiseOrValue<string> | null, data?: null, result?: null, sender?: PromiseOrValue<string> | null): FunctionCalledEventFilter;
        "Initialized(uint8)"(version?: null): InitializedEventFilter;
        Initialized(version?: null): InitializedEventFilter;
        "Paused(address)"(account?: null): PausedEventFilter;
        Paused(account?: null): PausedEventFilter;
        "TemplateCloned(address,bytes32,uint256,bytes[],address)"(instance?: PromiseOrValue<string> | null, templateId?: PromiseOrValue<BytesLike> | null, version?: null, functionCalls?: null, sender?: PromiseOrValue<string> | null): TemplateClonedEventFilter;
        TemplateCloned(instance?: PromiseOrValue<string> | null, templateId?: PromiseOrValue<BytesLike> | null, version?: null, functionCalls?: null, sender?: PromiseOrValue<string> | null): TemplateClonedEventFilter;
        "TemplateDeployed(address,bytes32,uint256,bytes,bytes[],address)"(instance?: PromiseOrValue<string> | null, templateId?: PromiseOrValue<BytesLike> | null, version?: null, args?: null, functionCalls?: null, sender?: PromiseOrValue<string> | null): TemplateDeployedEventFilter;
        TemplateDeployed(instance?: PromiseOrValue<string> | null, templateId?: PromiseOrValue<BytesLike> | null, version?: null, args?: null, functionCalls?: null, sender?: PromiseOrValue<string> | null): TemplateDeployedEventFilter;
        "TemplateDisabled(bytes32,address)"(templateId?: PromiseOrValue<BytesLike> | null, sender?: PromiseOrValue<string> | null): TemplateDisabledEventFilter;
        TemplateDisabled(templateId?: PromiseOrValue<BytesLike> | null, sender?: PromiseOrValue<string> | null): TemplateDisabledEventFilter;
        "TemplateEnabled(bytes32,address)"(templateId?: PromiseOrValue<BytesLike> | null, sender?: PromiseOrValue<string> | null): TemplateEnabledEventFilter;
        TemplateEnabled(templateId?: PromiseOrValue<BytesLike> | null, sender?: PromiseOrValue<string> | null): TemplateEnabledEventFilter;
        "TemplateVersionCreated(bytes32,uint256,address,address)"(templateId?: PromiseOrValue<BytesLike> | null, version?: PromiseOrValue<BigNumberish> | null, implementation?: null, sender?: PromiseOrValue<string> | null): TemplateVersionCreatedEventFilter;
        TemplateVersionCreated(templateId?: PromiseOrValue<BytesLike> | null, version?: PromiseOrValue<BigNumberish> | null, implementation?: null, sender?: PromiseOrValue<string> | null): TemplateVersionCreatedEventFilter;
        "TemplateVersionDeprecated(bytes32,uint256,address)"(templateId?: PromiseOrValue<BytesLike> | null, version?: PromiseOrValue<BigNumberish> | null, sender?: PromiseOrValue<string> | null): TemplateVersionDeprecatedEventFilter;
        TemplateVersionDeprecated(templateId?: PromiseOrValue<BytesLike> | null, version?: PromiseOrValue<BigNumberish> | null, sender?: PromiseOrValue<string> | null): TemplateVersionDeprecatedEventFilter;
        "TemplateVersionUndeprecated(bytes32,uint256,address)"(templateId?: PromiseOrValue<BytesLike> | null, version?: PromiseOrValue<BigNumberish> | null, sender?: PromiseOrValue<string> | null): TemplateVersionUndeprecatedEventFilter;
        TemplateVersionUndeprecated(templateId?: PromiseOrValue<BytesLike> | null, version?: PromiseOrValue<BigNumberish> | null, sender?: PromiseOrValue<string> | null): TemplateVersionUndeprecatedEventFilter;
        "TokensRecovered(address,address,uint256,address)"(token?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, amount?: null, sender?: PromiseOrValue<string> | null): TokensRecoveredEventFilter;
        TokensRecovered(token?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, amount?: null, sender?: PromiseOrValue<string> | null): TokensRecoveredEventFilter;
        "Unpaused(address)"(account?: null): UnpausedEventFilter;
        Unpaused(account?: null): UnpausedEventFilter;
    };
    estimateGas: {
        FUNCTION_CALL_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        MANAGE_TEMPLATE_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        PUBLIC_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        SOMA(overrides?: CallOverrides): Promise<BigNumber>;
        TOKEN_RECOVERY_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        cloneTemplate(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, functionCalls: PromiseOrValue<BytesLike>[], salt: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        deployRole(templateId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        deployTemplate(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, args: PromiseOrValue<BytesLike>, functionCalls: PromiseOrValue<BytesLike>[], salt: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        deployedByFactory(instance: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        deploymentInfo(instance: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        deprecateVersion(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        disableTemplate(templateId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        enableTemplate(templateId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        functionCall(target: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        initCodeHash(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, args: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        latestVersion(templateId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        multicall(data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        predictCloneAddress(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, salt: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        predictDeployAddress(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, args: PromiseOrValue<BytesLike>, salt: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        recoverTokens(token: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        templateInstances(templateId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        undeprecateVersion(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateDeployRole(templateId: PromiseOrValue<BytesLike>, _deployRole: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        uploadTemplate(templateId: PromiseOrValue<BytesLike>, initialPart: PromiseOrValue<BytesLike>, totalParts: PromiseOrValue<BigNumberish>, implementation: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        uploadTemplatePart(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, part: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        version(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        FUNCTION_CALL_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MANAGE_TEMPLATE_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        PUBLIC_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        SOMA(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        TOKEN_RECOVERY_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        cloneTemplate(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, functionCalls: PromiseOrValue<BytesLike>[], salt: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        deployRole(templateId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        deployTemplate(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, args: PromiseOrValue<BytesLike>, functionCalls: PromiseOrValue<BytesLike>[], salt: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        deployedByFactory(instance: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        deploymentInfo(instance: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        deprecateVersion(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        disableTemplate(templateId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        enableTemplate(templateId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        functionCall(target: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initCodeHash(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, args: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        latestVersion(templateId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        multicall(data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        predictCloneAddress(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, salt: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        predictDeployAddress(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, args: PromiseOrValue<BytesLike>, salt: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        recoverTokens(token: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        templateInstances(templateId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        undeprecateVersion(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateDeployRole(templateId: PromiseOrValue<BytesLike>, _deployRole: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        uploadTemplate(templateId: PromiseOrValue<BytesLike>, initialPart: PromiseOrValue<BytesLike>, totalParts: PromiseOrValue<BigNumberish>, implementation: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        uploadTemplatePart(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, part: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        version(templateId: PromiseOrValue<BytesLike>, _version: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
//# sourceMappingURL=TemplateFactory.d.ts.map