import * as react_jsx_runtime from 'react/jsx-runtime';
import { z } from 'zod';
import { ReactNode, ComponentType } from 'react';

declare const ClientStatusSchema: z.ZodEnum<{
    active: "active";
    onboarding: "onboarding";
    paused: "paused";
    completed: "completed";
    churned: "churned";
}>;
declare const ClientSourceSchema: z.ZodString;
type ClientStatus = z.infer<typeof ClientStatusSchema>;
type ClientSource = z.infer<typeof ClientSourceSchema>;

interface ClientStatusBadgeProps {
    status: ClientStatus;
}
declare function ClientStatusBadge({ status }: ClientStatusBadgeProps): react_jsx_runtime.JSX.Element;

declare function ClientsMetricsStrip(): react_jsx_runtime.JSX.Element;

interface ClientLineageColumn<T> {
    header: string;
    render: (row: T) => ReactNode;
}
interface ClientLineageSectionProps<T> {
    title: string;
    icon: ReactNode;
    rows: T[];
    columns: ClientLineageColumn<T>[];
    emptyText: string;
    emptyIcon: ComponentType<{
        size: number;
        style?: React.CSSProperties;
    }>;
    rowKey: (row: T) => string;
    onRowClick?: (row: T) => void;
}
declare function ClientLineageSection<T>({ title, icon, rows, columns, emptyText, emptyIcon, rowKey, onRowClick }: ClientLineageSectionProps<T>): react_jsx_runtime.JSX.Element;

interface CreateClientModalProps {
    opened: boolean;
    onClose: () => void;
}
declare function CreateClientModal({ opened, onClose }: CreateClientModalProps): react_jsx_runtime.JSX.Element;

interface EditClientNameModalProps {
    opened: boolean;
    onClose: () => void;
    clientId: string;
    currentName: string;
    currentSource: ClientSource;
}
declare function EditClientNameModal({ opened, onClose, clientId, currentName, currentSource }: EditClientNameModalProps): react_jsx_runtime.JSX.Element;

interface UpdateClientStatusModalProps {
    opened: boolean;
    onClose: () => void;
    clientId: string;
    currentStatus: ClientStatus;
}
declare function UpdateClientStatusModal({ opened, onClose, clientId, currentStatus }: UpdateClientStatusModalProps): react_jsx_runtime.JSX.Element;

interface DeleteClientConfirmProps {
    opened: boolean;
    onClose: () => void;
    clientId: string;
    clientName: string;
    /** Called after successful deletion so the caller can navigate away */
    onDeleted?: () => void;
}
declare function DeleteClientConfirm({ opened, onClose, clientId, clientName, onDeleted }: DeleteClientConfirmProps): react_jsx_runtime.JSX.Element;

interface ClientsListPageProps {
    onClientClick?: (clientId: string) => void;
}
declare function ClientsListPage({ onClientClick }?: ClientsListPageProps): react_jsx_runtime.JSX.Element;

interface ClientDetailPageProps {
    clientId: string;
}
declare function ClientDetailPage({ clientId }: ClientDetailPageProps): react_jsx_runtime.JSX.Element;

declare const CLIENT_STATUS_COLORS: Record<ClientStatus, string>;
declare function formatClientStatusLabel(status: string): string;

export { CLIENT_STATUS_COLORS, ClientDetailPage, ClientLineageSection, ClientStatusBadge, ClientsListPage, ClientsMetricsStrip, CreateClientModal, DeleteClientConfirm, EditClientNameModal, UpdateClientStatusModal, formatClientStatusLabel };
export type { ClientDetailPageProps, ClientLineageColumn, ClientLineageSectionProps, ClientStatusBadgeProps, ClientsListPageProps, CreateClientModalProps, DeleteClientConfirmProps, EditClientNameModalProps, UpdateClientStatusModalProps };
