import { ContractFactory, ContractTransactionResponse } from "ethers";
import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
import type { PayableOverrides } from "../../../../../../common";
import type { FreeForAllPolicy, FreeForAllPolicyInterface } from "../../../../../../@excubiae/contracts/contracts/extensions/freeForAll/FreeForAllPolicy";
type FreeForAllPolicyConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
export declare class FreeForAllPolicy__factory extends ContractFactory {
    constructor(...args: FreeForAllPolicyConstructorParams);
    getDeployTransaction(overrides?: PayableOverrides & {
        from?: string;
    }): Promise<ContractDeployTransaction>;
    deploy(overrides?: PayableOverrides & {
        from?: string;
    }): Promise<FreeForAllPolicy & {
        deploymentTransaction(): ContractTransactionResponse;
    }>;
    connect(runner: ContractRunner | null): FreeForAllPolicy__factory;
    static readonly bytecode = "0x60806040523380602957604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6030816035565b50608e565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b61075c8061009d6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637e164204116100715780637e1642041461012b5780638129fc1c1461013e5780638da5cb5b14610146578063b41a4b191461015c578063ce343deb14610171578063f2fde38b1461019757600080fd5b8063158ef93e146100ae5780631e898ef1146100d0578063715018a6146100e557806372f7a030146100ed578063776d1a0114610118575b600080fd5b6000546100bb9060ff1681565b60405190151581526020015b60405180910390f35b6100e36100de366004610553565b6101aa565b005b6100e36101e5565b600154610100906001600160a01b031681565b6040516001600160a01b0390911681526020016100c7565b6100e36101263660046105da565b6101f9565b600254610100906001600160a01b031681565b6100e361029c565b60005461010090046001600160a01b0316610100565b6101646102a4565b6040516100c79190610644565b60408051808201909152600a815269119c9959519bdc905b1b60b21b6020820152610164565b6100e36101a53660046105da565b6102b3565b6001546001600160a01b031633146101d557604051631f492dbf60e21b815260040160405180910390fd5b6101e08383836102f6565b505050565b6101ed6103d9565b6101f7600061040c565b565b6102016103d9565b6001600160a01b0381166102285760405163d92e233d60e01b815260040160405180910390fd5b6001546001600160a01b0316156102525760405163e0f2d7b160e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f3bfb4bbf112628248058745a3c57e35b13369386e474b8e56c552f3063a4a19690600090a250565b6101f7610465565b60606102ae6104c1565b905090565b6102bb6103d9565b6001600160a01b0381166102ea57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6102f38161040c565b50565b60025460405163e2b2408560e01b81526001600160a01b039091169063e2b240859061032a90869086908690600401610680565b602060405180830381865afa158015610347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036b91906106ae565b61038857604051634715494560e01b815260040160405180910390fd5b6001546040516001600160a01b03918216918516907fc013b39287cb7a53f776482ac9573829321f002f31ef8782129b41d60047bda0906103cc90869086906106d0565b60405180910390a3505050565b6000546001600160a01b036101009091041633146101f75760405163118cdaa760e01b81523360048201526024016102e1565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b61046d6104cc565b60006104776104c1565b90506000808280602001905181019061049091906106ec565b9150915061049d8261040c565b600280546001600160a01b0319166001600160a01b03929092169190911790555050565b60606102ae306104dd565b6104d461050c565b6101f73361040c565b60405164ffffffffff602c19833b0116808252602090810190602d908301843c60408101815101604052919050565b60005460ff161561052f5760405162dc149f60e41b815260040160405180910390fd5b6000805460ff19166001179055565b6001600160a01b03811681146102f357600080fd5b60008060006040848603121561056857600080fd5b83356105738161053e565b9250602084013567ffffffffffffffff81111561058f57600080fd5b8401601f810186136105a057600080fd5b803567ffffffffffffffff8111156105b757600080fd5b8660208284010111156105c957600080fd5b939660209190910195509293505050565b6000602082840312156105ec57600080fd5b81356105f78161053e565b9392505050565b6000815180845260005b8181101561062457602081850181015186830182015201610608565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006105f760208301846105fe565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906106a59083018486610657565b95945050505050565b6000602082840312156106c057600080fd5b815180151581146105f757600080fd5b6020815260006106e4602083018486610657565b949350505050565b600080604083850312156106ff57600080fd5b825161070a8161053e565b602084015190925061071b8161053e565b80915050925092905056fea264697066735822122089e6f48a389a1f15a9ad7a80de81e6579b346d67882544c102db56e828d31a3f64736f6c634300081c0033";
    static readonly abi: readonly [{
        readonly inputs: readonly [];
        readonly stateMutability: "payable";
        readonly type: "constructor";
    }, {
        readonly inputs: readonly [];
        readonly name: "AlreadyEnforced";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "AlreadyInitialized";
        readonly type: "error";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "owner";
            readonly type: "address";
        }];
        readonly name: "OwnableInvalidOwner";
        readonly type: "error";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "account";
            readonly type: "address";
        }];
        readonly name: "OwnableUnauthorizedAccount";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "TargetAlreadySet";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "TargetNotSet";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "TargetOnly";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "UnsuccessfulCheck";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "ZeroAddress";
        readonly type: "error";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "subject";
            readonly type: "address";
        }, {
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "guarded";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "bytes";
            readonly name: "evidence";
            readonly type: "bytes";
        }];
        readonly name: "Enforced";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "previousOwner";
            readonly type: "address";
        }, {
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "newOwner";
            readonly type: "address";
        }];
        readonly name: "OwnershipTransferred";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "guarded";
            readonly type: "address";
        }];
        readonly name: "TargetSet";
        readonly type: "event";
    }, {
        readonly inputs: readonly [];
        readonly name: "BASE_CHECKER";
        readonly outputs: readonly [{
            readonly internalType: "contract BaseChecker";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "subject";
            readonly type: "address";
        }, {
            readonly internalType: "bytes";
            readonly name: "evidence";
            readonly type: "bytes";
        }];
        readonly name: "enforce";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "getAppendedBytes";
        readonly outputs: readonly [{
            readonly internalType: "bytes";
            readonly name: "appendedBytes";
            readonly type: "bytes";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "guarded";
        readonly outputs: readonly [{
            readonly internalType: "address";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "initialize";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "initialized";
        readonly outputs: readonly [{
            readonly internalType: "bool";
            readonly name: "";
            readonly type: "bool";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "owner";
        readonly outputs: readonly [{
            readonly internalType: "address";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "renounceOwnership";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "_guarded";
            readonly type: "address";
        }];
        readonly name: "setTarget";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "trait";
        readonly outputs: readonly [{
            readonly internalType: "string";
            readonly name: "";
            readonly type: "string";
        }];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "newOwner";
            readonly type: "address";
        }];
        readonly name: "transferOwnership";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }];
    static createInterface(): FreeForAllPolicyInterface;
    static connect(address: string, runner?: ContractRunner | null): FreeForAllPolicy;
}
export {};
//# sourceMappingURL=FreeForAllPolicy__factory.d.ts.map