import { ReactNode } from 'react'; import { FieldValues, UseFormReturn } from 'react-hook-form'; export declare const FormPage: import('@emotion/styled').StyledComponent<{ theme?: import('@emotion/react').Theme; as?: React.ElementType; }, import('react').DetailedHTMLProps, HTMLDivElement>, {}>; export declare const FormRoot: import('@emotion/styled').StyledComponent<{ theme?: import('@emotion/react').Theme; as?: React.ElementType; }, import('react').DetailedHTMLProps, HTMLDivElement>, {}>; /** * Back-arrow icon button used at the top-left of invoicing forms. Only the back * arrow - no "Ask AI CFO" button or comments icon (per the bill-pattern brief). */ export declare function InvoicingBackButton({ onBack }: Readonly<{ onBack: () => void; }>): import("react/jsx-runtime").JSX.Element; /** Title row for invoicing forms: optional back arrow + H6 title. */ export declare function InvoicingFormTitleBar({ onBack, title, }: Readonly<{ title: string; onBack?: () => void; }>): import("react/jsx-runtime").JSX.Element; export declare const FormHeader: import('@emotion/styled').StyledComponent<{ theme?: import('@emotion/react').Theme; as?: React.ElementType; }, import('react').DetailedHTMLProps, HTMLDivElement>, {}>; export declare const FormFooter: import('@emotion/styled').StyledComponent<{ theme?: import('@emotion/react').Theme; as?: React.ElementType; }, import('react').DetailedHTMLProps, HTMLDivElement>, {}>; export declare const FormSectionHeader: import('@emotion/styled').StyledComponent<{ theme?: import('@emotion/react').Theme; as?: React.ElementType; }, import('react').DetailedHTMLProps, HTMLDivElement>, {}>; export declare const FormErrorBanner: import('@emotion/styled').StyledComponent<{ theme?: import('@emotion/react').Theme; as?: React.ElementType; }, import('react').DetailedHTMLProps, HTMLDivElement>, {}>; export declare const FormFieldGrid: import('@emotion/styled').StyledComponent<{ theme?: import('@emotion/react').Theme; as?: React.ElementType; }, import('react').DetailedHTMLProps, HTMLDivElement>, {}>; export declare const FormReadonlyValue: import('@emotion/styled').StyledComponent<{ theme?: import('@emotion/react').Theme; as?: React.ElementType; } & import('react').ClassAttributes & import('react').HTMLAttributes & { theme?: import('@emotion/react').Theme; }, {}, {}>; export declare const FormTextInput: import('@emotion/styled').StyledComponent<{ theme?: import('@emotion/react').Theme; as?: React.ElementType; }, import('react').DetailedHTMLProps, HTMLInputElement>, {}>; export declare const FormSelectInput: import('@emotion/styled').StyledComponent<{ theme?: import('@emotion/react').Theme; as?: React.ElementType; }, import('react').DetailedHTMLProps, HTMLSelectElement>, {}>; export declare const FormTextAreaInput: import('@emotion/styled').StyledComponent<{ theme?: import('@emotion/react').Theme; as?: React.ElementType; }, import('react').DetailedHTMLProps, HTMLTextAreaElement>, {}>; export interface InvoicingFormShellProps { children: ReactNode; /** Unique form id; binds the sticky footer submit button to the form. */ formId: string; isSubmitting: boolean; methods: UseFormReturn; submitLabel: string; title: string; cancelLabel?: string; errorMessage?: string; onCancel: () => void; onSubmit: (values: TFieldValues) => void; /** When provided, renders a back-arrow icon button to the left of the title. */ onBack?: () => void; } /** * Shared shell for invoicing create/edit forms. Mirrors the bill edit chrome: a * back arrow + title header, a react-hook-form `FormProvider` wrapping a * `
` whose submit is driven by the sticky bottom {@link Footer} via the * `formId` binding, and an optional error banner. Field rows inside `children` * should use the shared `formElements/Labeled*` primitives so field color, * hover/focus and search behave exactly like bill edit. */ export declare function InvoicingFormShell({ cancelLabel, children, errorMessage, formId, isSubmitting, methods, onBack, onCancel, onSubmit, submitLabel, title, }: Readonly>): import("react/jsx-runtime").JSX.Element;