import { type Address, type Drift, type HexString, type ReadContract, type ReadWriteAdapter, type ReadWriteContract } from "@delvtech/drift";
import { DynamicAddressFeeSplitManagerAbi } from "../abi/DynamicAddressFeeSplitManager";
import type { FlaunchToken } from "./TreasuryManagerClient";
export type DynamicAddressFeeSplitManagerABI = typeof DynamicAddressFeeSplitManagerAbi;
export type RecipientShare = {
    recipient: Address;
    share: bigint;
};
export type DynamicRecipientInfo = {
    share: bigint;
    debtPerShare: bigint;
    snapshotBalance: bigint;
    claimed: bigint;
};
export declare class ReadDynamicAddressFeeSplitManager {
    readonly contract: ReadContract<DynamicAddressFeeSplitManagerABI>;
    constructor(address: Address, drift?: Drift);
    permissions(): Promise<`0x${string}`>;
    managerOwner(): Promise<`0x${string}`>;
    moderator(): Promise<`0x${string}`>;
    creatorShare(): Promise<bigint>;
    ownerShare(): Promise<bigint>;
    totalActiveShares(): Promise<bigint>;
    accumulatorPerShare(): Promise<bigint>;
    lastProcessedManagerFees(): Promise<bigint>;
    recipientCount(): Promise<bigint>;
    recipientAt(index: bigint): Promise<`0x${string}`>;
    recipients(recipient: Address): Promise<DynamicRecipientInfo>;
    balances(recipient: Address): Promise<bigint>;
    recipientShare(recipient: Address, data?: HexString): Promise<bigint>;
    pendingCreatorFees(recipient: Address): Promise<bigint>;
    pendingOwnerFees(): Promise<bigint>;
    claimableOwnerFees(): Promise<bigint>;
    allRecipients(includeInactive?: boolean): Promise<`0x${string}`[]>;
}
export declare class ReadWriteDynamicAddressFeeSplitManager extends ReadDynamicAddressFeeSplitManager {
    contract: ReadWriteContract<DynamicAddressFeeSplitManagerABI>;
    constructor(address: Address, drift?: Drift<ReadWriteAdapter>);
    setPermissions(permissions: Address): Promise<`0x${string}`>;
    transferManagerOwnership(newManagerOwner: Address): Promise<`0x${string}`>;
    setModerator(moderator: Address): Promise<`0x${string}`>;
    updateRecipients(recipients: RecipientShare[]): Promise<`0x${string}`>;
    transferRecipientShare(newRecipient: Address): Promise<`0x${string}`>;
    claim(): Promise<`0x${string}`>;
    claimForData(data: HexString): Promise<`0x${string}`>;
    deposit(flaunchToken: FlaunchToken, creator: Address, data: HexString): Promise<`0x${string}`>;
    setCreator(flaunchToken: FlaunchToken, creator: Address): Promise<`0x${string}`>;
    rescue(flaunchToken: FlaunchToken, recipient: Address): Promise<`0x${string}`>;
}
//# sourceMappingURL=DynamicAddressFeeSplitManagerClient.d.ts.map