import { ContractFactory, ContractTransactionResponse } from "ethers";
import type { Signer, AddressLike, ContractDeployTransaction, ContractRunner } from "ethers";
import type { NonPayableOverrides } from "../common";
import type { SignatureSchemeAddressProvider, SignatureSchemeAddressProviderInterface } from "../SignatureSchemeAddressProvider";
type SignatureSchemeAddressProviderConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
export declare class SignatureSchemeAddressProvider__factory extends ContractFactory {
    constructor(...args: SignatureSchemeAddressProviderConstructorParams);
    getDeployTransaction(owner: AddressLike, overrides?: NonPayableOverrides & {
        from?: string;
    }): Promise<ContractDeployTransaction>;
    deploy(owner: AddressLike, overrides?: NonPayableOverrides & {
        from?: string;
    }): Promise<SignatureSchemeAddressProvider & {
        deploymentTransaction(): ContractTransactionResponse;
    }>;
    connect(runner: ContractRunner | null): SignatureSchemeAddressProvider__factory;
    static readonly bytecode = "0x608060405234801561000f575f5ffd5b506040516109e03803806109e083398101604081905261002e916101a7565b6001600160a01b03811661003f5750335b6100495f826100fe565b61008e5760405162461bcd60e51b815260206004820152601160248201527011dc985b9d081c9bdb194819985a5b1959607a1b60448201526064015b60405180910390fd5b6100b87fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775826100fe565b6100f85760405162461bcd60e51b815260206004820152601160248201527011dc985b9d081c9bdb194819985a5b1959607a1b6044820152606401610085565b506101d4565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1661019e575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556101563390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016101a1565b505f5b92915050565b5f602082840312156101b7575f5ffd5b81516001600160a01b03811681146101cd575f5ffd5b9392505050565b6107ff806101e15f395ff3fe608060405234801561000f575f5ffd5b50600436106100a6575f3560e01c80635bb09cf81161006e5780635bb09cf81461013d57806375b238fc1461016857806391d148541461018f578063a217fddf146101a2578063bab867da146101a9578063d547741f146101bc575f5ffd5b806301ffc9a7146100aa578063248a9ca3146100d25780632f2ff15d146101025780632fc9fa331461011757806336568abe1461012a575b5f5ffd5b6100bd6100b836600461065c565b6101cf565b60405190151581526020015b60405180910390f35b6100f46100e036600461068a565b5f9081526020819052604090206001015490565b6040519081526020016100c9565b6101156101103660046106bc565b610205565b005b6100bd61012536600461072b565b61022f565b6101156101383660046106bc565b61026f565b61015061014b36600461072b565b6102a7565b6040516001600160a01b0390911681526020016100c9565b6100f47fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b6100bd61019d3660046106bc565b6102db565b6100f45f81565b6101156101b736600461076a565b610303565b6101156101ca3660046106bc565b6104f6565b5f6001600160e01b03198216637965db0b60e01b14806101ff57506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f8281526020819052604090206001015461021f8161051a565b6102298383610527565b50505050565b5f5f6001600160a01b03166001848460405161024c9291906107ba565b908152604051908190036020019020546001600160a01b03161415905092915050565b6001600160a01b03811633146102985760405163334bd91960e11b815260040160405180910390fd5b6102a282826105b6565b505050565b5f600183836040516102ba9291906107ba565b908152604051908190036020019020546001600160a01b0316905092915050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61032c7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561051a565b6001600160a01b0381161580159061034d57505f816001600160a01b03163b115b6103b15760405162461bcd60e51b815260206004820152602a60248201527f496e76616c696420636f6e7472616374206164647265737320666f7220736368604482015269656d654164647265737360b01b60648201526084015b60405180910390fd5b5f6001600160a01b0316600184846040516103cd9291906107ba565b908152604051908190036020019020546001600160a01b03161461043d5760405162461bcd60e51b815260206004820152602160248201527f536368656d6520616c726561647920616464656420666f7220736368656d65496044820152601160fa1b60648201526084016103a8565b80600184846040516104509291906107ba565b90815260405190819003602001812080546001600160a01b03939093166001600160a01b03199093169290921790915560019061049090859085906107ba565b908152604051908190036020018120546001600160a01b0316906104b790859085906107ba565b604051908190038120428252907f0a1cd6a1e0a7b200d28ead555f3cee96e0d2def049535fbcfdc2926bc4cec5049060200160405180910390a3505050565b5f828152602081905260409020600101546105108161051a565b61022983836105b6565b610524813361061f565b50565b5f61053283836102db565b6105af575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556105673390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016101ff565b505f6101ff565b5f6105c183836102db565b156105af575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016101ff565b61062982826102db565b6106585760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016103a8565b5050565b5f6020828403121561066c575f5ffd5b81356001600160e01b031981168114610683575f5ffd5b9392505050565b5f6020828403121561069a575f5ffd5b5035919050565b80356001600160a01b03811681146106b7575f5ffd5b919050565b5f5f604083850312156106cd575f5ffd5b823591506106dd602084016106a1565b90509250929050565b5f5f83601f8401126106f6575f5ffd5b50813567ffffffffffffffff81111561070d575f5ffd5b602083019150836020828501011115610724575f5ffd5b9250929050565b5f5f6020838503121561073c575f5ffd5b823567ffffffffffffffff811115610752575f5ffd5b61075e858286016106e6565b90969095509350505050565b5f5f5f6040848603121561077c575f5ffd5b833567ffffffffffffffff811115610792575f5ffd5b61079e868287016106e6565b90945092506107b19050602085016106a1565b90509250925092565b818382375f910190815291905056fea26469706673582212208e75f402a6a79352db9e94254bcc5dc7069aa450387a484913e4b1958af59ea264736f6c634300081c0033";
    static readonly abi: readonly [{
        readonly type: "constructor";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "ADMIN_ROLE";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "DEFAULT_ADMIN_ROLE";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "getRoleAdmin";
        readonly inputs: readonly [{
            readonly name: "role";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "getSignatureSchemeAddress";
        readonly inputs: readonly [{
            readonly name: "schemeID";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "grantRole";
        readonly inputs: readonly [{
            readonly name: "role";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "hasRole";
        readonly inputs: readonly [{
            readonly name: "role";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "isSupportedScheme";
        readonly inputs: readonly [{
            readonly name: "schemeID";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "renounceRole";
        readonly inputs: readonly [{
            readonly name: "role";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "callerConfirmation";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "revokeRole";
        readonly inputs: readonly [{
            readonly name: "role";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "supportsInterface";
        readonly inputs: readonly [{
            readonly name: "interfaceId";
            readonly type: "bytes4";
            readonly internalType: "bytes4";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "updateSignatureScheme";
        readonly inputs: readonly [{
            readonly name: "schemeID";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "schemeAddress";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "event";
        readonly name: "NewSignatureSchemeAddressAdded";
        readonly inputs: readonly [{
            readonly name: "schemeID";
            readonly type: "string";
            readonly indexed: true;
            readonly internalType: "string";
        }, {
            readonly name: "schemeAddress";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "addedAt";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "RoleAdminChanged";
        readonly inputs: readonly [{
            readonly name: "role";
            readonly type: "bytes32";
            readonly indexed: true;
            readonly internalType: "bytes32";
        }, {
            readonly name: "previousAdminRole";
            readonly type: "bytes32";
            readonly indexed: true;
            readonly internalType: "bytes32";
        }, {
            readonly name: "newAdminRole";
            readonly type: "bytes32";
            readonly indexed: true;
            readonly internalType: "bytes32";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "RoleGranted";
        readonly inputs: readonly [{
            readonly name: "role";
            readonly type: "bytes32";
            readonly indexed: true;
            readonly internalType: "bytes32";
        }, {
            readonly name: "account";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "sender";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "RoleRevoked";
        readonly inputs: readonly [{
            readonly name: "role";
            readonly type: "bytes32";
            readonly indexed: true;
            readonly internalType: "bytes32";
        }, {
            readonly name: "account";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "sender";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "error";
        readonly name: "AccessControlBadConfirmation";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "AccessControlUnauthorizedAccount";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "neededRole";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
    }];
    static createInterface(): SignatureSchemeAddressProviderInterface;
    static connect(address: string, runner?: ContractRunner | null): SignatureSchemeAddressProvider;
}
export {};
