import { DocusignStatus } from "./docusign-iframe/DocusignIframe";
import { DocusignForm } from "./sqm-docusign-form";
export declare type ParticipantType = "individualParticipant" | "businessEntity" | undefined;
export declare const DOCUSIGN_ERROR_STATES: string[];
export declare const DOCUSIGN_EXPIRED_STATES: string[];
export declare const DOCUSIGN_SUCCESS_STATES: string[];
export declare function useDocusignForm(props: DocusignForm): {
  states: {
    step: string;
    hideSteps: boolean;
    disabled: boolean;
    participantTypeDisabled: boolean;
    loading: boolean;
    urlLoading: boolean;
    loadingError: boolean;
    formState: {
      participantType: "individualParticipant" | "businessEntity";
      taxFormExpired: boolean;
      errors: {};
    };
    docusignStatus: DocusignStatus;
    documentType: import("../data").TaxDocumentType;
    documentTypeString: string;
    showExitButton: boolean;
    showModal: boolean;
  };
  data: {
    taxForm: import("../data").TaxDocumentType;
    documentUrl: string;
  };
  callbacks: {
    setDocusignStatus: (value: "cancel" | "ttl_expired" | "signing_complete" | "delete" | "exception" | "fax_pending" | "session_timeout" | "viewing_complete" | ((prev: DocusignStatus) => DocusignStatus)) => void;
    completeDocument: () => Promise<void>;
    onExit: () => void;
    setParticipantType: (value: "individualParticipant" | "businessEntity" | ((prev: "individualParticipant" | "businessEntity") => "individualParticipant" | "businessEntity")) => void;
    onModalClose: () => void;
    onModalOpen: () => void;
  };
  text: DocusignForm & {
    error: {
      generalTitle: string;
      generalDescription: string;
      participantType: string;
      loadingErrorAlertHeader: string;
      loadingErrorAlertDescription: string;
    };
  };
};
export declare type UseDocusignFormResult = ReturnType<typeof useDocusignForm>;
