import type { Address, ContractRunner, Profile, AvatarRow, TokenBalanceRow, AggregatedTrustRelation } from '@aboutcircles/sdk-types'; import type { TransactionReceipt } from 'viem'; import type { Core } from '@aboutcircles/sdk-core'; import { CommonAvatar } from './CommonAvatar.js'; /** * BaseGroupAvatar class implementation * Provides a simplified wrapper around Circles protocol for base group avatars * * This class represents a base group avatar in the Circles ecosystem and provides * methods for managing trust relationships, group properties, and metadata. */ export declare class BaseGroupAvatar extends CommonAvatar { private readonly baseGroup; constructor(address: Address, core: Core, contractRunner?: ContractRunner, avatarInfo?: AvatarRow); readonly balances: { getTotal: () => Promise; getTokenBalances: () => Promise; /** * Get total supply of this group's token */ getTotalSupply: () => Promise; }; readonly trust: { add: (avatar: Address | Address[], expiry?: bigint) => Promise; remove: (avatar: Address | Address[]) => Promise; isTrusting: (otherAvatar: Address) => Promise; isTrustedBy: (otherAvatar: Address) => Promise; getAll: () => Promise; /** * Trust a batch of members with membership condition checks * * This is a group-specific method that validates members against membership conditions * before establishing trust. * * @param members Array of member addresses * @param expiry Trust expiry timestamp. Defaults to 0 * @returns Transaction response * * @example * ```typescript * // Trust multiple members with condition checks * await groupAvatar.trust.addBatchWithConditions( * ['0x123...', '0x456...', '0x789...'], * BigInt(Date.now() / 1000 + 31536000) // 1 year expiry * ); * ``` */ addBatchWithConditions: (members: Address[], expiry?: bigint) => Promise; }; readonly profile: { get: () => Promise; update: (profile: Profile) => Promise; updateMetadata: (cid: string) => Promise; registerShortName: (nonce: number) => Promise; }; readonly properties: { /** * Get the owner of this group */ owner: () => Promise
; /** * Get the mint handler address */ mintHandler: () => Promise
; /** * Get the service address */ service: () => Promise
; /** * Get the fee collection address */ feeCollection: () => Promise
; /** * Get all membership conditions */ getMembershipConditions: () => Promise; }; readonly setProperties: { /** * Set a new owner for this group */ owner: (newOwner: Address) => Promise; /** * Set a new service address */ service: (newService: Address) => Promise; /** * Set a new fee collection address */ feeCollection: (newFeeCollection: Address) => Promise; /** * Enable or disable a membership condition */ membershipCondition: (condition: Address, enabled: boolean) => Promise; }; } //# sourceMappingURL=BaseGroupAvatar.d.ts.map