import { default as React } from 'react';
import { AllowedFileType } from '../../common/inputFileElement/InputFileElement';
/**
 * Lifecycle of the policy-document extract request driving the four
 * upload-pill visual states. Shared across the manual create page
 * (`CardPolicyFormSections`) and the AI CFO interactive form
 * (`UploadPolicyDocumentStep`).
 */
export type CardPolicyDocumentUploadState = "Not-Started" | "In-Progress" | "Completed" | "Error";
/**
 * Accepted MIME types for the policy-document file picker. Kept in one
 * place so the manual page and the AI CFO step stay in sync.
 */
export declare const POLICY_DOCUMENT_ACCEPTED_TYPES: AllowedFileType[];
export declare const DropZone: import('@emotion/styled').StyledComponent<{
    theme?: import('@emotion/react').Theme;
    as?: React.ElementType;
} & {
    isError: boolean;
}, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
export declare const DropZoneCopy: import('@emotion/styled').StyledComponent<{
    theme?: import('@emotion/react').Theme;
    as?: React.ElementType;
} & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
    theme?: import('@emotion/react').Theme;
}, {}, {}>;
export declare const UploadErrorMessage: import('@emotion/styled').StyledComponent<{
    theme?: import('@emotion/react').Theme;
    as?: React.ElementType;
} & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
    theme?: import('@emotion/react').Theme;
}, {}, {}>;
export declare const UploadingPill: import('@emotion/styled').StyledComponent<{
    theme?: import('@emotion/react').Theme;
    as?: React.ElementType;
}, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
export declare const UploadingLabel: import('@emotion/styled').StyledComponent<{
    theme?: import('@emotion/react').Theme;
    as?: React.ElementType;
} & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
    theme?: import('@emotion/react').Theme;
}, {}, {}>;
export interface UploadingPillWithSweepProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
    /** Total time the left-to-right sweep takes to fill the pill, in ms. */
    duration: number;
    /** Content overlaid above the sweep — typically a `<UploadingLabel>`. */
    children?: React.ReactNode;
    /**
     * Fires when the sweep animation reaches 100%. Owners typically flip to
     * the `Extracting policy details...` pill on this callback so the visual
     * transition feels continuous.
     */
    onSweepComplete?: () => void;
}
/**
 * Green pill with a left-to-right sweep that fills `successProgress` over
 * `duration` ms (once, with `forwards` fill mode, so it stays full). Wraps
 * the shared `ProgressBar` primitive from
 * `common/uploadAnimation/ProgressBarContainer`.
 */
export declare const UploadingPillWithSweep: React.ForwardRefExoticComponent<UploadingPillWithSweepProps & React.RefAttributes<HTMLDivElement>>;
/**
 * Purple/pink gradient-bordered pill shown while the extract API is still
 * running after the upload sweep has filled. Gradient and shimmer match
 * Figma node 9:24914.
 */
export declare const ExtractingPill: import('@emotion/styled').StyledComponent<{
    theme?: import('@emotion/react').Theme;
    as?: React.ElementType;
}, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
/**
 * Label rendered inside `ExtractingPill` — uses the same shimmering gradient
 * as the pill border, clipped to the text glyphs via `background-clip: text`.
 * Falls back to the gradient's anchor pink (`#EE609C`) when text-clip isn't
 * supported.
 */
export declare const ExtractingLabel: import('@emotion/styled').StyledComponent<{
    theme?: import('@emotion/react').Theme;
    as?: React.ElementType;
} & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
    theme?: import('@emotion/react').Theme;
}, {}, {}>;
export declare const UploadedPill: import('@emotion/styled').StyledComponent<{
    theme?: import('@emotion/react').Theme;
    as?: React.ElementType;
}, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
export declare const UploadedPillContent: import('@emotion/styled').StyledComponent<{
    theme?: import('@emotion/react').Theme;
    as?: React.ElementType;
}, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
export interface PolicyIconStyledProps {
    /**
     * File name (with extension) used to pick the right document-format icon
     * — PDF for `.pdf`, PNG for `.png`, and so on. Falls back to the generic
     * policy icon when the extension is unknown or no name is provided.
     */
    fileName?: string;
}
/**
 * 16 px document icon centered in a 24 px square wrapper so it aligns with
 * the close-button on the other end of the `UploadedPill` row. The icon
 * shape is picked from the uploaded file's extension; all icons render in
 * `Colors.success` regardless of the source SVG's native colors.
 */
export declare const PolicyIconStyled: React.FC<PolicyIconStyledProps>;
export declare const UploadedFileName: import('@emotion/styled').StyledComponent<{
    theme?: import('@emotion/react').Theme;
    as?: React.ElementType;
} & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
    theme?: import('@emotion/react').Theme;
}, {}, {}>;
export declare const RemoveButton: import('@emotion/styled').StyledComponent<{
    theme?: import('@emotion/react').Theme;
    as?: React.ElementType;
}, React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {}>;
export declare const CloseIconStyled: import('@emotion/styled').StyledComponent<React.SVGProps<SVGSVGElement> & {
    title?: string;
} & {
    theme?: import('@emotion/react').Theme;
}, {}, {}>;
