import * as Eulith from "./index"; export declare module WhitelistsV2 { function createDraft(provider: Eulith.Provider, displayName: string, addresses: AddressOnChain[]): Promise; function createDraftWithSublists(provider: Eulith.Provider, displayName: string, addresses: AddressOnChain[], sublists: number[], description?: string): Promise; function appendToDraft(provider: Eulith.Provider, listId: number, addresses: AddressOnChain[]): Promise; function appendToDraftWithSublists(provider: Eulith.Provider, listId: number, addresses: AddressOnChain[], sublists: number[]): Promise; function deleteDraft(provider: Eulith.Provider, listId: number): Promise; function archive(provider: Eulith.Provider, listId: number): Promise; function unarchive(provider: Eulith.Provider, listId: number): Promise; function deleteAddresses(provider: Eulith.Provider, listId: number, addresses: AddressOnChain[], sublists: number[]): Promise; function updateMetadata(provider: Eulith.Provider, listId: number, newName: string | null, newDescription: string | null, notesUpdates?: AddressOnChain[]): Promise; function publish(provider: Eulith.Provider, listId: number): Promise; function startActivation(provider: Eulith.Provider, listId: number, authAddress: string, safeAddress: string, chainId: number): Promise; function getPendingActivations(provider: Eulith.Provider): Promise; function submitSignature(provider: Eulith.Provider, signer: Eulith.Signing.SigningService, activateRequest: StartActivateResponse): Promise; function removeFromSafe(provider: Eulith.Provider, authAddress: string, safeAddress: string, chainId: number): Promise; function getById(provider: Eulith.Provider, listId: number): Promise; function getAll(provider: Eulith.Provider): Promise; function getOptIn(provider: Eulith.Provider): Promise; interface Whitelist { listId: number; displayName: string; description: string; sortedAddresses: AddressOnChain[]; sortedSublists: OptInList[]; isDraft: boolean; isArchived: boolean; createdAt: number; } interface CreateRequest { displayName: string; addresses: AddressOnChain[]; sublists: number[]; description?: string; } interface CreateResponse { listId: number; } interface AppendRequest { listId: number; addresses: AddressOnChain[]; sublists: number[]; } interface AppendResponse { draft: Whitelist; } interface DeleteRequest { listId: number; } interface DeleteResponse { deleted: Whitelist; } interface PublishRequest { listId: number; } interface PublishResponse { published: Whitelist; } interface StartActivateRequest { listId: number; authAddress: string; safeAddress: string; chainId: number; } interface StartActivateResponse { activationId: number; hashInput: ActivateHashInput; hash: string; } interface ActivateHashInput { activationId: number; listId: number; authAddress: string; safeAddress: string; chainId: number; whitelistedAddresses: AddressOnChain[]; sublists: Sublist[]; } interface Sublist { listId: number; name: string; } interface GetPendingActivationsResponse { activations: PendingActivation[]; } interface PendingActivation { activationId: number; hashInput: ActivateHashInput; hash: string; whitelist: Whitelist; signatureThreshold: number; safeOwners: string[]; ownersAlreadySigned: string[]; } interface SubmitActivateSignatureRequest { activationId: number; signerAddress: string; signature: string; hash: string; } interface SubmitActivateSignatureResponse { signatureCount: number; signatureThreshold: number; } interface RemoveFromSafeRequest { authAddress: string; safeAddress: string; chainId: number; } interface RemoveFromSafeResponse { authAddress: string; safeAddress: string; chainId: number; } interface GetByIdRequest { listId: number; } interface GetByIdResponse { whitelist: Whitelist; } interface GetAllResponse { whitelists: Whitelist[]; } interface GetOptInResponse { optInLists: OptInList[]; } interface ArchiveRequest { listId: number; } interface ArchiveResponse { archived: Whitelist; } interface UnarchiveRequest { listId: number; } interface UnarchiveResponse { unarchived: Whitelist; } interface DeleteAddressesRequest { listId: number; addresses: AddressOnChain[]; sublists: number[]; } interface DeleteAddressesResponse { updated: Whitelist; } interface UpdateMetadataRequest { listId: number; newName: string | null; newDescription: string | null; notesUpdates?: AddressOnChain[]; } interface UpdateMetadataResponse { updated: Whitelist; } interface OptInList { listId: number; label: string; name: string; description: string; networks: OptInNetworkInfo[]; } interface OptInNetworkInfo { networkId: number; chainId: number; networkName: string; addressCount: number; } interface AddressOnChain { address: string; chainId: number; notes?: string; } }