import { ApproverViewUpdateData, BillPaySetupApproverView } from '@zeniai/client-epic-state';
export interface Props {
    approvalView: BillPaySetupApproverView;
    billPaySetupApproverViewUpdateData?: ApproverViewUpdateData;
    /**
     * Optional department-id → display-name map (where "department" maps
     * to the Class entity in this codebase). Derived from 'state.classState'.
     */
    departmentNamesById?: Record<string, string>;
    /**
     * External "still figuring out which variant of this page to mount"
     * signal — distinct from 'approvalView.fetchState'. Approval Rules
     * 3.0 — the V1↔V3 wrapper in the consumer reads
     * 'useApprovalRulesV3Config' and during its loading window has not
     * yet decided whether the V1 or V2 screen connector should fire its
     * fetch. While that is true we render the skeleton here and the
     * screen connector suppresses its own fetch dispatch, so the slice
     * is never poisoned by a fetch that targets the wrong endpoint.
     * Defaults to 'false' so existing call-sites are unaffected.
     */
    isLoading?: boolean;
    /**
     * Optional vendor-id → display-name map for resolving vendor chips on
     * rule cards. The connected screen derives this from 'state.contactState'.
     */
    vendorNamesById?: Record<string, string>;
    onBackClick: () => void;
    onDeleteRuleClick: (ruleId: string) => void;
    onEditRuleClick: (ruleId?: string) => void;
    /**
     * Called when the user drops a dragged rule card onto another. The
     * page computes the new id ordering (preserving the fallback rule
     * outside the list) and the screen connector dispatches the
     * reorder action against CES.
     */
    onReorderRules?: (newApprovalRuleIds: string[]) => void;
}
declare const BillPayApprovalRulesPage: ({ approvalView, isLoading, onBackClick, onEditRuleClick, onDeleteRuleClick, vendorNamesById, departmentNamesById, onReorderRules, }: Props) => import("react/jsx-runtime").JSX.Element;
export default BillPayApprovalRulesPage;
