import { AutoTransferRule, AutoTransferRuleType, FundingAccount, TreasuryAccount } from '@zeniai/client-epic-state'; export declare const getAccountLabel: (account?: FundingAccount | { accType: string; label: string; }) => string; export declare const getRuleName: (ruleType?: string | null) => string; /** Resolve from-account label and mask from rule.source account id via transferMoneyParties; fallback to rule.fromAccountLabel/Mask */ export declare function getFromAccountDisplay(rule: AutoTransferRule, transferMoneyParties: FundingAccount[]): { label: string; mask: string; }; /** Resolve destination (maintain balance in / to) account label and mask from rule by searching transferMoneyParties */ export declare function getDestinationAccountDisplay(rule: AutoTransferRule, transferMoneyParties: FundingAccount[], treasuryAccount?: TreasuryAccount): { label: string; mask: string; }; /** Destination item for percentage_of_balance: percent and account display from transferMoneyParties */ export interface AllocationDisplay { accountId: string | undefined; accountLabel: string; accountMask: string; percent: number; } /** Build allocation display from rule.destination_bank_account_metadata by resolving account ids in transferMoneyParties */ export declare function getAllocationsFromDestinations(rule: AutoTransferRule, transferMoneyParties: FundingAccount[], treasuryAccount?: TreasuryAccount): AllocationDisplay[]; /** Non-deleted rules (active or inactive) that count toward duplicate checks, excluding the rule being edited (if any). */ export declare function getOtherActiveAutoTransferRulesForDuplicateCheck(rules: AutoTransferRule[], excludeRuleId: string | undefined): AutoTransferRule[]; /** Optional predicates to mark dropdown options disabled to prevent duplicate rules. */ export interface DuplicateDisablePickers { disableFrom?: (accountId: string) => boolean; disableTo?: (accountId: string) => boolean; } /** * Duplicate rules (by type): * - minimum_balance: another active rule with the same destination account * - percentage_of_balance: another active rule with the same source account * - recurring: another active rule with the same source + destination pair */ export declare function duplicateDisableForRuleType(createRuleType: AutoTransferRuleType, otherActiveRules: AutoTransferRule[], selectedSourceId: string | undefined, selectedDestinationId: string | undefined): DuplicateDisablePickers | undefined; /** Rules that apply to this deposit account (destination or allocation target). */ export declare function getAutoTransferRulesForAccount(accountId: string, rules: AutoTransferRule[]): AutoTransferRule[]; export interface AccountListRuleStrings { percentToDestination: string; transferAmountToDestination: string; } /** * One-line summary for the checking-account list (matches list column design). */ export declare function buildAccountListRuleSummaryLine(rule: AutoTransferRule, accountId: string, transferMoneyParties: FundingAccount[], treasuryAccount: TreasuryAccount | undefined, copy: AccountListRuleStrings): string;