import { Identity } from './Identity';
import { IDocument } from './Document';
import { IBankAccount } from './BankAccount';
import { CountryCode } from '../utils/country-codes';
export declare enum BusinessFormServerErrors {
    fetchData = "Error retrieving business data",
    patchData = "Error updating business data"
}
export declare enum BusinessClassification {
    sole_proprietor = "sole_proprietor",
    partnership = "partnership",
    corporation = "corporation",
    public_company = "public_company",
    limited = "limited",
    non_profit = "non_profit",
    government = "government"
}
export interface IAddress {
    id?: string;
    platform_account_id?: string;
    line1?: string;
    line2?: string;
    postal_code?: string;
    city?: string;
    state?: string;
    country?: string;
    created_at?: string;
    updated_at?: string;
}
export declare class Address implements IAddress {
    id?: string;
    platform_account_id?: string;
    line1?: string;
    line2?: string;
    postal_code?: string;
    city?: string;
    state?: string;
    country?: string;
    created_at?: string;
    updated_at?: string;
    constructor(address: IAddress);
    get payload(): {
        platform_account_id: string;
        line1: string;
        line2: string;
        postal_code: string;
        city: string;
        state: string;
        country: string;
    };
}
export interface ProductCategories {
    credit: boolean;
    insurance: boolean;
    lending: boolean;
    payment: boolean;
}
export interface IAdditionalQuestions {
    business_revenue?: string;
    business_payment_volume?: string;
    business_average_transaction_amount?: string;
    business_when_service_received?: string;
    business_recurring_payments?: string;
    business_recurring_payments_percentage?: string;
    business_seasonal?: string;
    business_other_payment_details?: string;
    payload?: any;
}
export declare class AdditionalQuestions implements IAdditionalQuestions {
    business_revenue?: string;
    business_payment_volume?: string;
    business_average_transaction_amount?: string;
    business_when_service_received?: string;
    business_recurring_payments?: string;
    business_recurring_payments_percentage?: string;
    business_seasonal?: string;
    business_other_payment_details?: string;
    constructor(additionalQuestions: IAdditionalQuestions);
    get payload(): {
        business_revenue: string;
        business_payment_volume: string;
        business_average_transaction_amount: string;
        business_when_service_received: string;
        business_recurring_payments: string;
        business_recurring_payments_percentage: string;
        business_seasonal: string;
        business_other_payment_details: string;
    };
}
export interface ICoreBusinessInfo {
    classification?: BusinessClassification;
    legal_name?: string;
    doing_business_as?: string;
    industry?: string;
    tax_id?: string;
    tax_id_last4?: string;
    website_url?: string;
    email?: string;
    phone?: string;
    date_of_incorporation?: string;
}
export declare class CoreBusinessInfo implements ICoreBusinessInfo {
    classification: BusinessClassification;
    legal_name: string;
    doing_business_as: string;
    industry: string;
    tax_id: string;
    tax_id_last4: string;
    website_url: string;
    email: string;
    phone: string;
    date_of_incorporation: string;
    constructor(coreBusinessInfo: ICoreBusinessInfo);
    get payload(): {
        website_url: string;
        email: string;
        phone: string;
        date_of_incorporation: string;
        tax_id: string;
        classification: string;
        legal_name: string;
        doing_business_as: string;
        industry: string;
    };
}
export interface IBusiness {
    additional_questions: IAdditionalQuestions;
    associated_accounts: any[];
    classification: BusinessClassification;
    bank_accounts: IBankAccount[];
    created_at: string;
    documents: IDocument[];
    doing_business_as: string;
    email: string;
    id: string;
    industry: string;
    legal_address?: IAddress | null;
    legal_name: string;
    metadata: any;
    owners: Identity[];
    phone: string;
    platform_account_id: string;
    product_categories: ProductCategories;
    representative?: Identity | null;
    tax_id: string;
    tax_id_last4: string;
    terms_conditions_accepted: boolean;
    updated_at: string;
    website_url: string;
    date_of_incorporation?: string;
    country_of_establishment?: CountryCode;
    bank_account_verification?: boolean;
}
export declare class Business implements IBusiness {
    additional_questions: IAdditionalQuestions;
    associated_accounts: any[];
    classification: BusinessClassification;
    bank_accounts: IBankAccount[];
    created_at: string;
    documents: IDocument[];
    doing_business_as: string;
    email: string;
    id: string;
    industry: string;
    legal_address?: Address | null;
    legal_name: string;
    metadata: any;
    owners: Identity[];
    phone: string;
    platform_account_id: string;
    representative?: Identity | null;
    tax_id: string;
    tax_id_last4: string;
    terms_conditions_accepted: boolean;
    updated_at: string;
    website_url: string;
    date_of_incorporation?: string;
    product_categories: ProductCategories;
    country_of_establishment?: CountryCode;
    bank_account_verification?: boolean;
    constructor(business: IBusiness);
    get payload(): {
        tax_id_last4: string;
        website_url: string;
        date_of_incorporation: string;
        country_of_establishment: CountryCode;
        tax_id: string;
        additional_questions: {
            business_revenue: string;
            business_payment_volume: string;
            business_average_transaction_amount: string;
            business_when_service_received: string;
            business_recurring_payments: string;
            business_recurring_payments_percentage: string;
            business_seasonal: string;
            business_other_payment_details: string;
        };
        classification: string;
        doing_business_as: string;
        email: string;
        industry: string;
        legal_address: {
            platform_account_id: string;
            line1: string;
            line2: string;
            postal_code: string;
            city: string;
            state: string;
            country: string;
        };
        legal_name: string;
        metadata: any;
        owners: {
            id: string;
        }[];
        phone: string;
        platform_account_id: string;
        representative: {
            address: {
                platform_account_id: string;
                line1: string;
                line2: string;
                postal_code: string;
                city: string;
                state: string;
                country: string;
            };
            dob_day: string;
            dob_month: string;
            dob_year: string;
            email: string;
            is_owner: boolean;
            identification_number: string;
            metadata: any;
            name: string;
            phone: string;
            platform_account_id: string;
            title: string;
        };
    };
}
export interface IProductReadiness {
    business_id: string;
    created_at: string;
    id: string;
    last_verified_at: string;
    missing_optional_fields: string[];
    missing_required_fields: string[];
    percentage_complete: number;
    percentage_ready: number;
    platform_account_id: string;
    product_category: string;
    product_name: string;
    required_ready: boolean;
    updated_at: string;
}
