"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PolynomialAccountResolver__factory = void 0;
const ethers_1 = require("ethers");
const _abi = [
    {
        inputs: [
            {
                internalType: 'address',
                name: '_index',
                type: 'address',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'constructor',
    },
    {
        inputs: [
            {
                internalType: 'uint64',
                name: 'id',
                type: 'uint64',
            },
        ],
        name: 'getAccount',
        outputs: [
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'getAccountAuthorities',
        outputs: [
            {
                internalType: 'address[]',
                name: '',
                type: 'address[]',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'getAccountAuthoritiesTypes',
        outputs: [
            {
                components: [
                    {
                        internalType: 'address',
                        name: 'owner',
                        type: 'address',
                    },
                    {
                        internalType: 'uint256',
                        name: 'authType',
                        type: 'uint256',
                    },
                ],
                internalType: 'struct AccountResolver.AuthType[]',
                name: '',
                type: 'tuple[]',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'getAccountDetails',
        outputs: [
            {
                components: [
                    {
                        internalType: 'uint256',
                        name: 'ID',
                        type: 'uint256',
                    },
                    {
                        internalType: 'address',
                        name: 'account',
                        type: 'address',
                    },
                    {
                        internalType: 'uint256',
                        name: 'version',
                        type: 'uint256',
                    },
                    {
                        internalType: 'address[]',
                        name: 'authorities',
                        type: 'address[]',
                    },
                ],
                internalType: 'struct AccountResolver.AccountData',
                name: '',
                type: 'tuple',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: 'id',
                type: 'uint256',
            },
        ],
        name: 'getAccountIdDetails',
        outputs: [
            {
                components: [
                    {
                        internalType: 'uint256',
                        name: 'ID',
                        type: 'uint256',
                    },
                    {
                        internalType: 'address',
                        name: 'account',
                        type: 'address',
                    },
                    {
                        internalType: 'uint256',
                        name: 'version',
                        type: 'uint256',
                    },
                    {
                        internalType: 'address[]',
                        name: 'authorities',
                        type: 'address[]',
                    },
                ],
                internalType: 'struct AccountResolver.AccountData',
                name: '',
                type: 'tuple',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address[]',
                name: 'accounts',
                type: 'address[]',
            },
        ],
        name: 'getAccountVersions',
        outputs: [
            {
                internalType: 'uint256[]',
                name: '',
                type: 'uint256[]',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'authority',
                type: 'address',
            },
        ],
        name: 'getAuthorityAccounts',
        outputs: [
            {
                internalType: 'address[]',
                name: '',
                type: 'address[]',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'authority',
                type: 'address',
            },
        ],
        name: 'getAuthorityDetails',
        outputs: [
            {
                components: [
                    {
                        internalType: 'uint64[]',
                        name: 'IDs',
                        type: 'uint64[]',
                    },
                    {
                        internalType: 'address[]',
                        name: 'accounts',
                        type: 'address[]',
                    },
                    {
                        internalType: 'uint256[]',
                        name: 'versions',
                        type: 'uint256[]',
                    },
                ],
                internalType: 'struct AccountResolver.AuthorityData',
                name: '',
                type: 'tuple',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'authority',
                type: 'address',
            },
        ],
        name: 'getAuthorityIDs',
        outputs: [
            {
                internalType: 'uint64[]',
                name: '',
                type: 'uint64[]',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address[]',
                name: 'authorities',
                type: 'address[]',
            },
        ],
        name: 'getAuthorityTypes',
        outputs: [
            {
                components: [
                    {
                        internalType: 'address',
                        name: 'owner',
                        type: 'address',
                    },
                    {
                        internalType: 'uint256',
                        name: 'authType',
                        type: 'uint256',
                    },
                ],
                internalType: 'struct AccountResolver.AuthType[]',
                name: '',
                type: 'tuple[]',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_addr',
                type: 'address',
            },
        ],
        name: 'getContractCode',
        outputs: [
            {
                internalType: 'bytes',
                name: 'o_code',
                type: 'bytes',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'getID',
        outputs: [
            {
                internalType: 'uint256',
                name: 'id',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: 'id',
                type: 'uint256',
            },
        ],
        name: 'getIDAuthorities',
        outputs: [
            {
                internalType: 'address[]',
                name: '',
                type: 'address[]',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        name: 'gnosisFactoryContracts',
        outputs: [
            {
                internalType: 'contract GnosisFactoryInterface',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'index',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'account',
                type: 'address',
            },
        ],
        name: 'isShield',
        outputs: [
            {
                internalType: 'bool',
                name: 'shield',
                type: 'bool',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'list',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
];
class PolynomialAccountResolver__factory {
    static createInterface() {
        return new ethers_1.utils.Interface(_abi);
    }
    static connect(address, signerOrProvider) {
        return new ethers_1.Contract(address, _abi, signerOrProvider);
    }
}
exports.PolynomialAccountResolver__factory = PolynomialAccountResolver__factory;
PolynomialAccountResolver__factory.abi = _abi;
//# sourceMappingURL=PolynomialAccountResolver__factory.js.map