/**
 * @license
 * Copyright 2026 Amodal Labs, Inc.
 * SPDX-License-Identifier: MIT
 */
export interface DirtyBannerProps {
    /**
     * Whether the dirty state is currently active. The component returns
     * null when false — keeps caller JSX clean.
     */
    visible: boolean;
    /**
     * Human-readable summary. Files passes `"3 changed files"`; Auth
     * passes `"amodal.json has unpublished auth changes"`.
     */
    label: string;
    /** Discard local edits. */
    onReset: () => void;
    /**
     * Optional — wire only when a diff view exists (Files has one;
     * Auth doesn't, since the form already shows the chosen state).
     */
    onReviewDiff?: () => void;
    /**
     * Open the commit dialog. Caller manages the dialog's open state.
     */
    onCommit: () => void;
    /** Reset/commit buttons are disabled while a save is in flight. */
    busy?: boolean;
}
export declare function DirtyBanner({ visible, label, onReset, onReviewDiff, onCommit, busy, }: DirtyBannerProps): import("react/jsx-runtime").JSX.Element | null;
