import { HardhatRuntimeEnvironment } from 'hardhat/types'; import { Baal, BaalLessShares, BaalSummoner, GnosisSafe, Loot, MockBaal, MultiSend, Poster, Shares, TestERC20, TributeMinion } from '../../src/types'; import { DAOSettings, NewBaalAddresses, NewBaalParams, ProposalParams, SummonSetup } from './baal'; import { BigNumberish, ContractTransaction } from 'ethers'; import { TributeProposalParams, TributeProposalStatus } from './tribute'; export declare type Signer = { address: string; sharesInitial: number; lootInitial: number; baal?: Baal; loot?: Loot; shares?: Shares; tributeMinion?: TributeMinion; weth?: TestERC20; dai?: TestERC20; }; export declare type ProposalHelpers = { submitAndProcessProposal: (params: Omit) => Promise; submitAndProcessTributeProposal: (params: Omit) => Promise; setShamanProposal: (baal: Baal, multisend: MultiSend, shamanAddress: string, permission: BigNumberish) => Promise; }; export declare type BaalSetupType = { Loot: Loot; Shares: Shares; Baal: Baal; BaalSummoner: BaalSummoner; GnosisSafe: GnosisSafe; MultiSend: MultiSend; Poster?: Poster; TributeMinion: TributeMinion; WETH: TestERC20; DAI: TestERC20; signers: { [key: string]: Signer; }; daoSettings: DAOSettings; helpers: ProposalHelpers; }; declare type MockBaalSetupType = { Loot: Loot; LootSingleton: Loot; MockBaal: MockBaal; signers: { [key: string]: Signer; }; }; declare type MockBaalLessTokenSetupType = { BaalLessShares: BaalLessShares; }; export declare type SetupUsersParams = { addresses: NewBaalAddresses; baal: Baal; hre: HardhatRuntimeEnvironment; }; export declare type UsersSetup = { dai: TestERC20; weth: TestERC20; signers: { [key: string]: Signer; }; }; declare type BaalSetupOpts = { fixtureTags?: Array; daoSettings?: Partial; summonSetupOpts?: Partial; safeAddress?: `0x${string}`; forwarderAddress?: `0x${string}`; lootAddress?: `0x${string}`; sharesAddress?: `0x${string}`; setupBaalOverride?: (params: NewBaalParams) => Promise; setupUsersOverride?: (params: SetupUsersParams) => Promise; }; export declare const setupUsersDefault: ({ baal, hre, }: SetupUsersParams) => Promise<{ weth: TestERC20; dai: TestERC20; signers: { summoner: { address: string; baal: Baal; loot: Loot; lootInitial: number; shares: Shares; sharesInitial: number; tributeMinion: TributeMinion; weth: TestERC20; dai: TestERC20; }; applicant: { address: string; baal: Baal; loot: Loot; lootInitial: number; shares: Shares; sharesInitial: number; tributeMinion: TributeMinion; weth: TestERC20; dai: TestERC20; }; shaman: { address: string; baal: Baal; loot: Loot; lootInitial: number; sharesInitial: number; shares: Shares; }; s1: { address: string; baal: Baal; lootInitial: number; sharesInitial: number; weth: TestERC20; dai: TestERC20; }; s2: { address: string; baal: Baal; lootInitial: number; sharesInitial: number; weth: TestERC20; dai: TestERC20; }; s3: { address: string; baal: Baal; lootInitial: number; sharesInitial: number; }; s4: { address: string; baal: Baal; lootInitial: number; sharesInitial: number; }; s5: { address: string; baal: Baal; lootInitial: number; sharesInitial: number; }; s6: { address: string; baal: Baal; lootInitial: number; sharesInitial: number; }; }; }>; export declare const baalSetup: (options?: BaalSetupOpts | undefined) => Promise; export declare const mockBaalSetup: (options?: unknown) => Promise; export declare const mockBaalLessSharesSetup: (options?: unknown) => Promise; export {};