import { Dictionary } from 'lodash';
import { SupportedChainId } from './constants';
import { Address } from 'viem';
/** All built-in and custom scalars, mapped to their actual values */
type Scalars = {
    ID: string;
    String: string;
    Boolean: boolean;
    Int: number;
    Float: number;
    DateTime: string;
};
export type GqlRecipient = {
    id: Scalars['ID'];
    account: GqlAccount;
    ownership: Scalars['String'];
    idx: Scalars['String'];
};
type GqlAccountSharedFields = {
    chainId: Scalars['String'];
    distributions: GqlTokenBalance[];
    latestBlock: Scalars['Int'];
    latestActivity: Scalars['String'];
    parentEntityType?: Scalars['String'];
    internalBalances: GqlTokenBalance[];
    warehouseBalances: GqlTokenBalance[];
    contractEarnings: GqlContractEarnings[];
    warehouseWithdrawConfig: GqlWarehouseWithdrawConfig;
};
export type GqlSplit = GqlAccountSharedFields & {
    __typename: 'Split';
    id: Scalars['ID'];
    recipients: GqlRecipient[];
    type: 'split' | 'splitV2' | 'splitV2o1' | 'splitV2o2';
    distributorFee: Scalars['String'];
    distributeDirection: 'push' | 'pull';
    distributionsPaused: Scalars['Boolean'];
    controller?: {
        id: Scalars['String'];
    };
    newPotentialController?: {
        id: Scalars['String'];
    };
    liquidSplit?: GqlLiquidSplit;
    createdBlock: Scalars['Int'];
    withdrawals: GqlTokenBalance[];
};
type GqlContractEarningsBalance = GqlTokenBalanceSharedData & {
    contract: GqlAccount;
};
export type GqlContractEarnings = {
    contract: GqlAccount;
    internalBalances: GqlContractEarningsBalance[];
    withdrawals: GqlContractEarningsBalance[];
};
export type GqlUser = GqlAccountSharedFields & {
    __typename: 'User';
    id: Scalars['ID'];
    withdrawals: GqlTokenBalance[];
    contractEarnings: GqlContractEarnings[];
};
export type GqlVestingModule = GqlAccountSharedFields & {
    __typename: 'VestingModule';
    id: Scalars['ID'];
    vestingPeriod: Scalars['String'];
    beneficiary: GqlAccount;
    streams?: GqlVestingStream[];
};
export type GqlVestingStream = {
    id: Scalars['ID'];
    streamId: Scalars['String'];
    token: GqlToken;
    startTime: Scalars['String'];
    totalAmount: Scalars['Int'];
    claimedAmount: Scalars['Int'];
    account: GqlVestingModule;
};
export type GqlWaterfallModule = GqlAccountSharedFields & {
    __typename: 'WaterfallModule';
    id: Scalars['ID'];
    token: GqlToken;
    tranches: GqlWaterfallTranche[];
    distributions: GqlTokenBalance[];
    nonWaterfallRecipient: GqlAccount;
};
export type GqlWaterfallTranche = {
    id: Scalars['ID'];
    startAmount: Scalars['Int'];
    size?: Scalars['Int'];
    claimedAmount: Scalars['Int'];
    account: GqlWaterfallModule;
    recipient: GqlAccount;
};
export type GqlLiquidSplit = GqlAccountSharedFields & {
    __typename: 'LiquidSplit';
    id: Scalars['ID'];
    distributorFee: Scalars['String'];
    holders: GqlHolder[];
    split: GqlSplit;
    isFactoryGenerated: Scalars['Boolean'];
};
export type GqlHolder = {
    id: Scalars['ID'];
    ownership: Scalars['String'];
};
type GqlUniswapV3TWAPPairDetail = {
    base: GqlToken;
    quote: GqlToken;
    pool: Scalars['String'];
    fee: Scalars['Int'];
    period: Scalars['String'];
};
type GqlChainlinkFeed = {
    aggregatorV3: Scalars['String'];
    decimals: Scalars['Int'];
    staleAfter: Scalars['Int'];
    mul: Scalars['Boolean'];
};
type GqlChainlinkPairDetail = {
    base: GqlToken;
    quote: GqlToken;
    inverted: Scalars['Boolean'];
    feeds: GqlChainlinkFeed[];
};
type GqlUnknownOracle = {
    id: Scalars['ID'];
    type: 'unknown';
};
type GqlUniswapV3TWAPOracle = {
    id: Scalars['ID'];
    type: 'uniswapV3TWAP';
    createdBlock: Scalars['Int'];
    latestBlock: Scalars['Int'];
    latestActivity: Scalars['String'];
    owner: GqlAccount;
    paused: Scalars['Boolean'];
    defaultPeriod: Scalars['String'];
    pairDetails: GqlUniswapV3TWAPPairDetail[];
};
type GqlChainlinkOracle = {
    id: Scalars['ID'];
    type: 'chainlink';
    createdBlock: Scalars['Int'];
    latestBlock: Scalars['Int'];
    latestActivity: Scalars['String'];
    owner: GqlAccount;
    paused: Scalars['Boolean'];
    sequencerFeed: Scalars['String'];
    chainlinkPairDetails: GqlChainlinkPairDetail[];
};
export type GqlOracle = GqlUnknownOracle | GqlUniswapV3TWAPOracle | GqlChainlinkOracle;
export type GqlSwapBalance = {
    inputToken: GqlToken;
    inputAmount: Scalars['String'];
    outputToken: GqlToken;
    outputAmount: Scalars['String'];
};
type GqlSwapperScaledOfferFactorOverride = {
    base: GqlToken;
    quote: GqlToken;
    scaledOfferFactor: Scalars['String'];
};
export type GqlSwapper = GqlAccountSharedFields & {
    __typename: 'Swapper';
    id: Scalars['ID'];
    owner: GqlAccount;
    paused: Scalars['Boolean'];
    beneficiary: GqlAccount;
    tokenToBeneficiary: GqlToken;
    oracle: GqlOracle;
    defaultScaledOfferFactor: Scalars['String'];
    scaledOfferFactorPairOverrides: GqlSwapperScaledOfferFactorOverride[];
    swapperSwapBalances: GqlSwapBalance[];
};
export type GqlPassThroughBalance = {
    id: Scalars['ID'];
    amount: Scalars['Int'];
    token: GqlToken;
    account: GqlAccount;
};
export type GqlPassThroughWalletSwapBalanceOutput = {
    id: Scalars['ID'];
    token: GqlToken;
    amount: Scalars['Int'];
    passThroughWalletSwapBalance: GqlPassThroughWalletSwapBalance;
};
export type GqlPassThroughWalletSwapBalance = {
    id: Scalars['ID'];
    inputToken: GqlToken;
    inputAmount: Scalars['Int'];
    outputs: GqlPassThroughWalletSwapBalanceOutput[];
    passThroughWallet: GqlPassThroughWallet;
};
export type GqlPassThroughWallet = GqlAccountSharedFields & {
    __typename: 'PassThroughWallet';
    id: Scalars['ID'];
    owner: GqlAccount;
    paused: Scalars['Boolean'];
    passThroughAccount: GqlAccount;
    passThroughSwapBalances: GqlPassThroughWalletSwapBalance[];
};
type GqlToken = {
    id: Scalars['ID'];
    symbol: Scalars['String'];
    decimals: Scalars['Int'];
    withdrawals: GqlTokenBalance[];
    internalBalances: GqlTokenBalance[];
};
export type GqlTokenBalanceSharedData = {
    id: Scalars['ID'];
    amount: Scalars['Int'];
    token: GqlToken;
};
export type GqlTokenBalance = GqlTokenBalanceSharedData & {
    account: GqlAccount;
};
export type GqlWarehouseWithdrawConfig = {
    paused: Scalars['Boolean'];
    incentive: Scalars['Int'];
};
type GqlTransaction = {
    id: Scalars['ID'];
};
type GqlBaseEventData = {
    id: Scalars['ID'];
    timestamp: Scalars['Int'];
    logIndex: Scalars['Int'];
    account: GqlAccount;
};
type GqlRecieveDistributionEvent = GqlBaseEventData & {
    __typename: 'ReceiveDistributionEvent';
    token: GqlToken;
    amount: Scalars['Int'];
    distributionEvent: GqlDistributionEvent;
};
type GqlDistributeDistributionEvent = GqlBaseEventData & {
    __typename: 'DistributeDistributionEvent';
    token: GqlToken;
    amount: Scalars['Int'];
    distributionEvent: GqlDistributionEvent;
};
type GqlDistributionEvent = GqlBaseEventData & {
    __typename: 'DistributionEvent';
    amount: Scalars['Int'];
    token: GqlToken;
    transaction: GqlTransaction;
    receiveDistributionEvents: GqlRecieveDistributionEvent[];
    distributeDistributionEvent: GqlDistributeDistributionEvent;
};
type GqlWithdrawalEvent = GqlBaseEventData & {
    __typename: 'WithdrawalEvent';
    transaction: GqlTransaction;
    tokenWithdrawalEvents: GqlTokenWithdrawalEvent[];
};
type GqlTokenWithdrawalEvent = GqlBaseEventData & {
    __typename: 'TokenWithdrawalEvent';
    token: GqlToken;
    amount: Scalars['Int'];
    withdrawalEvent: GqlWithdrawalEvent;
};
type GqlControlTransferEvent = GqlBaseEventData & {
    __typename: 'ControlTransferEvent';
    controlTransferType: 'initiate' | 'cancel' | 'transfer';
    transaction: GqlTransaction;
    fromUserEvent: GqlFromUserGqlControlTransferEvent;
    toUserEvent?: GqlToUserGqlControlTransferEvent;
};
type GqlFromUserGqlControlTransferEvent = GqlBaseEventData & {
    __typename: 'FromUserControlTransferEvent';
    controlTransferEvent: GqlControlTransferEvent;
};
type GqlToUserGqlControlTransferEvent = GqlBaseEventData & {
    __typename: 'ToUserControlTransferEvent';
    controlTransferEvent: GqlControlTransferEvent;
};
type GqlSetSplitEvent = GqlBaseEventData & {
    __typename: 'SetSplitEvent';
    transaction: GqlTransaction;
    setSplitType: 'create' | 'update';
    recipientAddedEvents: GqlRecipientAddedEvent[];
    recipientRemovedEvents: GqlRecipientRemovedEvent[];
};
type GqlRecipientAddedEvent = GqlBaseEventData & {
    __typename: 'RecipientAddedEvent';
    setSplitEvent: GqlSetSplitEvent;
    ownership: Scalars['Int'];
};
type GqlRecipientRemovedEvent = GqlBaseEventData & {
    __typename: 'RecipientRemovedEvent';
    setSplitEvent: GqlSetSplitEvent;
};
type GqlCreateVestingModuleEvent = GqlBaseEventData & {
    __typename: 'CreateVestingModuleEvent';
    transaction: GqlTransaction;
};
type GqlCreateVestingStreamEvent = GqlBaseEventData & {
    __typename: 'CreateVestingStreamEvent';
    transaction: GqlTransaction;
    token: GqlToken;
    amount: Scalars['Int'];
};
type GqlReleaseVestingFundsEvent = GqlBaseEventData & {
    __typename: 'ReleaseVestingFundsEvent';
    account: GqlVestingModule;
    transaction: GqlTransaction;
    token: GqlToken;
    amount: Scalars['Int'];
};
type GqlReceiveVestedFundsEvent = GqlBaseEventData & {
    __typename: 'ReceiveVestedFundsEvent';
    releaseVestingFundsEvent: GqlReleaseVestingFundsEvent;
};
type GqlCreateWaterfallModuleEvent = GqlBaseEventData & {
    __typename: 'CreateWaterfallModuleEvent';
    transaction: GqlTransaction;
    recipientAddedEvents: GqlWaterfallRecipientAddedEvent[];
};
type GqlWaterfallRecipientAddedEvent = GqlBaseEventData & {
    __typename: 'WaterfallRecipientAddedEvent';
    createWaterfallEvent: GqlCreateWaterfallModuleEvent;
};
type GqlWaterfallFundsEvent = GqlBaseEventData & {
    __typename: 'WaterfallFundsEvent';
    account: GqlWaterfallModule;
    transaction: GqlTransaction;
    amount: Scalars['Int'];
    receiveFundsEvents: GqlReceiveWaterfallFundsEvent[];
};
type GqlReceiveWaterfallFundsEvent = GqlBaseEventData & {
    __typename: 'ReceiveWaterfallFundsEvent';
    amount: Scalars['Int'];
    waterfallFundsEvent: GqlWaterfallFundsEvent;
};
type GqlRecoverNonWaterfallFundsEvent = GqlBaseEventData & {
    __typename: 'RecoverNonWaterfallFundsEvent';
    account: GqlWaterfallModule;
    transaction: GqlTransaction;
    amount: Scalars['Int'];
    nonWaterfallToken: GqlToken;
    receiveNonWaterfallFundsEvent: GqlReceiveNonWaterfallFundsEvent;
};
type GqlReceiveNonWaterfallFundsEvent = GqlBaseEventData & {
    __typename: 'ReceiveNonWaterfallFundsEvent';
    recoverNonWaterfallFundsEvent: GqlRecoverNonWaterfallFundsEvent;
};
type GqlCreateLiquidSplitEvent = GqlBaseEventData & {
    __typename: 'CreateLiquidSplitEvent';
    transaction: GqlTransaction;
};
type GqlLiquidSplitNFTTransferEvent = GqlBaseEventData & {
    __typename: 'LiquidSplitNFTTransferEvent';
    transaction: GqlTransaction;
    nftTransferAmount?: Scalars['String'];
    transferType: Scalars['String'];
    nftAddedEvent?: GqlLiquidSplitNFTAddedEvent;
    nftRemovedEvent?: GqlLiquidSplitNFTRemovedEvent;
};
type GqlLiquidSplitNFTAddedEvent = GqlBaseEventData & {
    __typename: 'LiquidSplitNFTAddedEvent';
    nftTransferEvent: GqlLiquidSplitNFTTransferEvent;
};
type GqlLiquidSplitNFTRemovedEvent = GqlBaseEventData & {
    __typename: 'LiquidSplitNFTRemovedEvent';
    nftTransferEvent: GqlLiquidSplitNFTTransferEvent;
};
type GqlCreateSwapperEvent = GqlBaseEventData & {
    __typename: 'CreateSwapperEvent';
    transaction: GqlTransaction;
    token: GqlToken;
    beneficiaryAddedEvent: GqlSwapperBeneficiaryAddedEvent;
};
type GqlSwapperBeneficiaryAddedEvent = GqlBaseEventData & {
    __typename: 'SwapperBeneficiaryAddedEvent';
    createSwapperEvent: GqlCreateSwapperEvent;
    addedUpdateSwapperEvent: GqlUpdatePassThroughAccountEvent;
};
type GqlSwapperBeneficiaryRemovedEvent = GqlBaseEventData & {
    __typename: 'SwapperBeneficiaryRemovedEvent';
    removedUpdateSwapperEvent: GqlUpdatePassThroughAccountEvent;
};
type GqlUpdateSwapperBeneficiaryEvent = GqlBaseEventData & {
    __typename: 'UpdateSwapperBeneficiaryEvent';
    transaction: GqlTransaction;
    beneficiaryAddedEvent: GqlSwapperBeneficiaryAddedEvent;
    beneficiaryRemovedEvent: GqlSwapperBeneficiaryRemovedEvent;
};
type GqlUpdateSwapperTokenEvent = GqlBaseEventData & {
    __typename: 'UpdateSwapperTokenEvent';
    transaction: GqlTransaction;
    oldToken: GqlToken;
    newToken: GqlToken;
};
type GqlSwapFundsEvent = GqlBaseEventData & {
    __typename: 'SwapFundsEvent';
    transaction: GqlTransaction;
    inputAmount: Scalars['String'];
    inputToken: GqlToken;
    outputAmount: Scalars['String'];
    outputToken: GqlToken;
    recipient: GqlReceiveSwappedFundsEvent;
};
type GqlReceiveSwappedFundsEvent = GqlBaseEventData & {
    __typename: 'ReceiveSwappedFundsEvent';
    swapFundsEvent: GqlSwapFundsEvent;
};
type GqlCreatePassThroughWalletEvent = GqlBaseEventData & {
    __typename: 'CreatePassThroughWalletEvent';
    transaction: GqlTransaction;
    passThroughAccount: GqlAccount;
};
type GqlUpdatePassThroughAccountEvent = GqlBaseEventData & {
    __typename: 'UpdatePassThroughAccountEvent';
    transaction: GqlTransaction;
    oldPassThroughAccount: GqlAccount;
    newPassThroughAccount: GqlAccount;
};
type GqlPassThroughFundsBalance = {
    token: GqlToken;
    amount: Scalars['String'];
};
type GqlPassThroughFundsEvent = GqlBaseEventData & {
    __typename: 'PassThroughFundsEvent';
    transaction: GqlTransaction;
    passThroughBalances: GqlPassThroughFundsBalance[];
    recipient: GqlReceivePassThroughFundsEvent;
};
type GqlReceivePassThroughFundsEvent = GqlBaseEventData & {
    __typename: 'ReceivePassThroughFundsEvent';
    passThroughFundsEvent: GqlPassThroughFundsEvent;
};
type GqlReceiveOwnerSwappedDiversifierFundsEvent = GqlBaseEventData & {
    __typename: 'ReceiveOwnerSwappedDiversifierFundsEvent';
    swapDiversifierFundsBalance: GqlSwapDiversifierFundsBalance;
};
type GqlSwapDiversifierFundsBalance = {
    inputToken: GqlToken;
    inputAmount: Scalars['String'];
    outputToken: GqlToken;
    outputAmount: Scalars['String'];
    ownerSwapDiversifierFundsEvent: GqlOwnerSwapDiversifierFundsEvent;
};
type GqlOwnerSwapDiversifierFundsEvent = GqlBaseEventData & {
    __typename: 'OwnerSwapDiversifierFundsEvent';
    transaction: GqlTransaction;
    swapDiversifierFundsBalances: GqlSwapDiversifierFundsBalance[];
};
export type GqlAccountEvent = GqlDistributionEvent | GqlRecieveDistributionEvent | GqlDistributeDistributionEvent | GqlWithdrawalEvent | GqlControlTransferEvent | GqlToUserGqlControlTransferEvent | GqlFromUserGqlControlTransferEvent | GqlSetSplitEvent | GqlRecipientAddedEvent | GqlRecipientRemovedEvent | GqlCreateVestingModuleEvent | GqlCreateVestingStreamEvent | GqlReleaseVestingFundsEvent | GqlReceiveVestedFundsEvent | GqlCreateWaterfallModuleEvent | GqlWaterfallRecipientAddedEvent | GqlWaterfallFundsEvent | GqlReceiveWaterfallFundsEvent | GqlRecoverNonWaterfallFundsEvent | GqlReceiveNonWaterfallFundsEvent | GqlCreateLiquidSplitEvent | GqlLiquidSplitNFTTransferEvent | GqlLiquidSplitNFTAddedEvent | GqlLiquidSplitNFTRemovedEvent | GqlCreateSwapperEvent | GqlSwapperBeneficiaryAddedEvent | GqlSwapperBeneficiaryRemovedEvent | GqlUpdateSwapperBeneficiaryEvent | GqlUpdateSwapperTokenEvent | GqlSwapFundsEvent | GqlReceiveSwappedFundsEvent | GqlCreatePassThroughWalletEvent | GqlUpdatePassThroughAccountEvent | GqlPassThroughFundsEvent | GqlReceivePassThroughFundsEvent | GqlOwnerSwapDiversifierFundsEvent | GqlReceiveOwnerSwappedDiversifierFundsEvent;
export type GqlAccountEventName = GqlAccountEvent['__typename'];
export type GqlAccount = GqlUser | GqlSplit | GqlVestingModule | GqlWaterfallModule | GqlLiquidSplit | GqlSwapper | GqlPassThroughWallet;
export type GqlAccountType = GqlAccount['__typename'];
export type IBalance = Dictionary<{
    amount: bigint;
    symbol: string;
    decimals: number;
}>;
export type ISplitType = 'immutable' | 'mutable' | 'liquid';
export type IContractEarnings = Dictionary<{
    total: IBalance;
    withdrawals: IBalance;
    internalBalances: IBalance;
}>;
export type IAccount = {
    address: Address;
    chainId: SupportedChainId;
};
type IAccountSharedFields = IAccount & {
    distributions: IBalance;
    splitmainBalances: IBalance;
    warehouseBalances: IBalance;
    latestBlock: number;
    latestActivity: number;
    parentEntityType?: string;
    controllingSplits?: Address[];
    pendingControlSplits?: Address[];
    ownedSwappers?: Address[];
    ownedPassThroughWallets?: Address[];
    upstreamSplits?: Address[];
    upstreamWaterfalls?: Address[];
    upstreamLiquidSplits?: Address[];
    upstreamSwappers?: Address[];
    upstreamPassThroughWallets?: Address[];
    upstreamVesting?: Address[];
    contractEarnings: IContractEarnings;
    warehouseWithdrawConfig?: {
        paused: boolean;
        incentive: number;
    };
};
export type SplitV2Versions = 'splitV2' | 'splitV2o1' | 'splitV2o2';
export type ISplit = IAccountSharedFields & {
    type: 'split' | SplitV2Versions;
    balances: IBalance;
    distributed: IBalance;
    withdrawn: IBalance;
    recipients: IRecipient[];
    distributorFee: number;
    distributionsPaused: boolean;
    distributeDirection: 'push' | 'pull';
    controller: Address;
    newPotentialController: Address;
    hash: string;
    liquidSplitId?: Address;
    createdBlock: number;
};
export type IRecipient = {
    address: Address;
    ownership: bigint;
    idx: number;
    ens?: string;
};
export type IUser = IAccountSharedFields & {
    type: 'user';
    withdrawn: IBalance;
};
export type IVestingStream = {
    streamId: number;
    startTime: number;
    totalAmount: bigint;
    claimedAmount: bigint;
    token: Address;
};
export type IVestingModule = IAccountSharedFields & {
    type: 'vesting';
    balances: IBalance;
    beneficiary: Address;
    vestingPeriod: number;
    streams?: IVestingStream[];
};
export type IWaterfallTranche = {
    startAmount: bigint;
    size?: bigint;
    fundedAmount: bigint;
    claimedAmount: bigint;
    recipient: Address;
};
export type IWaterfallModule = IAccountSharedFields & {
    type: 'waterfall';
    balances: IBalance;
    distributed: IBalance;
    token: Address;
    tranches: IWaterfallTranche[];
    nonWaterfallRecipient: Address;
};
export type IHolder = {
    address: Address;
    ownership: bigint;
};
export type ILiquidSplit = IAccountSharedFields & {
    type: 'liquidSplit';
    balances: IBalance;
    distributed: IBalance;
    splitId: Address;
    distributorFee: number;
    holders: IHolder[];
    isFactoryGenerated: boolean;
    encodedSvgLogo?: string;
};
export type IUniswapV3TWAPPairDetails = Dictionary<{
    base: Address;
    quote: Address;
    pool: string;
    fee: number;
    period: number;
}>;
export type IChainlinkPairDetails = Dictionary<{
    base: Address;
    quote: Address;
}>;
type IBaseOracle = {
    address: Address;
};
type IUnknownOracle = IBaseOracle & {
    type: 'unknown';
};
export type IUniswapV3TWAPOracle = IBaseOracle & {
    type: 'uniswapV3TWAP';
    defaultPeriod: number;
    pairDetails: IUniswapV3TWAPPairDetails;
};
type IChainlinkOracle = IBaseOracle & {
    type: 'chainlink';
    sequencerFeed?: string;
    chainlinkPairDetails: IChainlinkPairDetails;
};
export type IOracle = IUnknownOracle | IUniswapV3TWAPOracle | IChainlinkOracle;
export type ISwapBalance = Dictionary<{
    inputAmount: bigint;
    outputAmount: bigint;
}>;
export type ISwapperScaledOfferFactorOverrides = Dictionary<{
    base: Address;
    quote: Address;
    scaledOfferFactor: number;
}>;
export type ISwapper = IAccountSharedFields & {
    type: 'swapper';
    balances: IBalance;
    balanceQuoteAmounts: ISwapBalance;
    swapBalances: ISwapBalance;
    owner: Address;
    beneficiary: Address;
    tokenToBeneficiary: Address;
    defaultScaledOfferFactor: number;
    scaledOfferFactorOverrides: ISwapperScaledOfferFactorOverrides;
    oracle: IOracle;
    paused: boolean;
};
export type IDiversifierSwapBalance = Dictionary<Dictionary<{
    inputAmount: bigint;
    outputToken: Address;
    outputAmount: bigint;
}>>;
export type IPassThroughWalletSwapBalance = Dictionary<{
    inputAmount: bigint;
    outputs: IBalance;
}>;
export type IPassThroughWallet = IAccountSharedFields & {
    type: 'passThroughWallet';
    balances: IBalance;
    passThroughBalances: IBalance;
    owner: Address;
    passThroughAccount: Address;
    balanceQuoteAmounts: IDiversifierSwapBalance;
    paused: boolean;
    swapBalances: IPassThroughWalletSwapBalance;
};
export type IAccountType = ISplit | IWaterfallModule | IVestingModule | ILiquidSplit | ISwapper | IPassThroughWallet | IUser;
export type ISubgraphAccount = {
    account?: IAccountType;
    upstreamSplits?: ISplit[];
    upstreamWaterfalls?: IWaterfallModule[];
    upstreamVesting?: IVestingModule[];
    upstreamLiquidSplits?: ILiquidSplit[];
    upstreamSwappers?: ISwapper[];
    upstreamPassThroughWallets?: IPassThroughWallet[];
    controllingSplits?: ISplit[];
    pendingControlSplits?: ISplit[];
    ownedSwappers?: ISwapper[];
    ownedPassThroughWallets?: IPassThroughWallet[];
};
export {};
