import { CurrentTaxDocument } from "../../../saasquatch";
import { TaxDocumentType } from "../data";
import { IndirectTaxForm } from "./sqm-indirect-tax-form";
export declare type ConnectPartnerResult = {
  createImpactConnection: {
    success: boolean;
    validationErrors: {
      field: string;
      message: string;
    }[];
    user: {
      id: string;
      accountId: string;
      impactConnection: {
        connected: boolean;
        publisher: {
          brandedSignup: boolean;
          requiredTaxDocumentType: TaxDocumentType | null;
          currentTaxDocument: null | CurrentTaxDocument;
        };
      } | null;
    } | null;
  };
};
export declare const CONNECT_PARTNER: string;
export declare function useIndirectTaxForm(props: IndirectTaxForm): {
  states: {
    step: string;
    hideSteps: boolean;
    disabled: boolean;
    loading: boolean;
    isPartner: boolean;
    loadingError: boolean;
    formState: {
      checked: "hstCanada" | "otherRegion" | "notRegistered";
      errors: {};
    };
  };
  callbacks: {
    onBack: () => void;
    onSubmit: (event: any) => Promise<void>;
    onFormChange: (field: string, e: CustomEvent) => void;
    onChange: (value: "hstCanada" | "otherRegion" | "notRegistered" | ((prev: "hstCanada" | "otherRegion" | "notRegistered") => "hstCanada" | "otherRegion" | "notRegistered")) => void;
    setCountrySearch: (value: string | ((prev: string) => string)) => void;
    onQstToggle: () => void;
    onSpainToggle: () => void;
  };
  data: {
    esRegions: {
      regionCode: string;
      taxType: string;
      displayName: string;
    }[];
    countries: {
      countryCode: string;
      displayName: any;
    }[];
    allCountries: {
      countryCode: string;
      displayName: any;
    }[];
    provinces: {
      regionCode: string;
      taxType: string;
      displayName: string;
    }[];
  };
  text: IndirectTaxForm & {
    error: {
      generalTitle: string;
      generalDescription: string;
      fieldRequiredError: string;
      loadingErrorAlertHeader: string;
      loadingErrorAlertDescription: string;
    };
    slotText: {
      isRegisteredQST: string;
      isRegisteredSubRegionIncomeTax: string;
      qstNumber: string;
      subRegion: string;
      subRegionTaxNumberLabel: string;
      selectedRegion: string;
      province: string;
      indirectTaxNumber: string;
      error: {
        indirectTaxNumber: string;
        fieldRequiredError: string;
      };
      searchForCountryText: string;
    };
  };
  refs: {
    formRef: {
      current: HTMLFormElement;
    };
  };
  slotProps: {
    formState: {
      selectedRegion?: string;
      subRegion?: string;
      subRegionTaxNumber?: string;
      qstNumber?: string;
      province?: string;
      indirectTaxNumber?: string;
      hasQst?: boolean;
      hasSubRegionTaxNumber?: boolean;
      errors?: any;
      error?: string;
    };
  };
};
export declare type UseIndirectTaxFormResult = ReturnType<typeof useIndirectTaxForm>;
