import * as z from "zod/v3";
import { Result as SafeParseResult } from "../../types/fp.js";
import { RFCDate } from "../../types/rfcdate.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { Address, Address$Outbound } from "./address.js";
import { BankAccount1, BankAccount1$Outbound } from "./bankaccount1.js";
import { Currency } from "./currency.js";
import { CustomField, CustomField$Outbound } from "./customfield.js";
import { Email, Email$Outbound } from "./email.js";
import { PassThroughBody, PassThroughBody$Outbound } from "./passthroughbody.js";
import { PhoneNumber, PhoneNumber$Outbound } from "./phonenumber.js";
import { SocialLink, SocialLink$Outbound } from "./sociallink.js";
import { Website, Website$Outbound } from "./website.js";
export type CompanyRowType = {
    id?: string | null | undefined;
    name?: string | null | undefined;
};
export type Company1 = {
    /**
     * Unique identifier for the company
     */
    id?: string | undefined;
    /**
     * Name of the company
     */
    name: string | null;
    /**
     * Number of interactions
     */
    interactionCount?: number | null | undefined;
    /**
     * Owner ID
     */
    ownerId?: string | null | undefined;
    /**
     * The Image URL of the company
     */
    image?: string | null | undefined;
    /**
     * A description of the company
     */
    description?: string | null | undefined;
    /**
     * The VAT number of the company
     */
    vatNumber?: string | null | undefined;
    /**
     * Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
     */
    currency?: Currency | null | undefined;
    /**
     * The status of the company
     */
    status?: string | null | undefined;
    /**
     * The fax number of the company
     */
    fax?: string | null | undefined;
    /**
     * The annual revenue of the company
     */
    annualRevenue?: string | null | undefined;
    /**
     * Number of employees
     */
    numberOfEmployees?: string | null | undefined;
    /**
     * The industry represents the type of business the company is in.
     */
    industry?: string | null | undefined;
    /**
     * The ownership indicates the type of ownership of the company.
     */
    ownership?: string | null | undefined;
    /**
     * A sales tax number is a unique number that identifies a company for tax purposes.
     */
    salesTaxNumber?: string | null | undefined;
    /**
     * A payee number is a unique number that identifies a payee for tax purposes.
     */
    payeeNumber?: string | null | undefined;
    /**
     * An ABN is necessary for operating a business, while a TFN (Tax File Number) is required for any person working in Australia.
     */
    abnOrTfn?: string | null | undefined;
    /**
     * An ABN Branch (also known as a GST Branch) is used if part of your business needs to account for GST separately from its parent entity.
     */
    abnBranch?: string | null | undefined;
    /**
     * The Australian Company Number (ACN) is a nine digit number with the last digit being a check digit calculated using a modified modulus 10 calculation. ASIC has adopted a convention of always printing and displaying the ACN in the format XXX XXX XXX; three blocks of three characters, each block separated by a blank.
     */
    acn?: string | null | undefined;
    /**
     * The first name of the person.
     */
    firstName?: string | null | undefined;
    /**
     * The last name of the person.
     */
    lastName?: string | null | undefined;
    /**
     * Parent ID
     */
    parentId?: string | null | undefined;
    bankAccounts?: Array<BankAccount1> | undefined;
    websites?: Array<Website> | undefined;
    addresses?: Array<Address> | undefined;
    socialLinks?: Array<SocialLink> | undefined;
    phoneNumbers?: Array<PhoneNumber> | undefined;
    emails?: Array<Email> | undefined;
    rowType?: CompanyRowType | undefined;
    customFields?: Array<CustomField> | undefined;
    tags?: Array<string> | null | undefined;
    /**
     * Whether the company is read-only or not
     */
    readOnly?: boolean | null | undefined;
    /**
     * Last activity date
     */
    lastActivityAt?: Date | null | undefined;
    /**
     * Whether the company is deleted or not
     */
    deleted?: boolean | undefined;
    /**
     * A formal salutation for the person. For example, 'Mr', 'Mrs'
     */
    salutation?: string | null | undefined;
    /**
     * The date of birth of the person.
     */
    birthday?: RFCDate | null | undefined;
    /**
     * When custom mappings are configured on the resource, the result is included here.
     */
    customMappings?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * Updated by user ID
     */
    updatedBy?: string | null | undefined;
    /**
     * Created by user ID
     */
    createdBy?: string | null | undefined;
    /**
     * Last updated date
     */
    updatedAt?: Date | null | undefined;
    /**
     * Creation date
     */
    createdAt?: Date | null | undefined;
    /**
     * The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources.
     */
    passThrough?: Array<PassThroughBody> | undefined;
};
export type Company1Input = {
    /**
     * Name of the company
     */
    name: string | null;
    /**
     * Owner ID
     */
    ownerId?: string | null | undefined;
    /**
     * The Image URL of the company
     */
    image?: string | null | undefined;
    /**
     * A description of the company
     */
    description?: string | null | undefined;
    /**
     * The VAT number of the company
     */
    vatNumber?: string | null | undefined;
    /**
     * Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
     */
    currency?: Currency | null | undefined;
    /**
     * The status of the company
     */
    status?: string | null | undefined;
    /**
     * The fax number of the company
     */
    fax?: string | null | undefined;
    /**
     * The annual revenue of the company
     */
    annualRevenue?: string | null | undefined;
    /**
     * Number of employees
     */
    numberOfEmployees?: string | null | undefined;
    /**
     * The industry represents the type of business the company is in.
     */
    industry?: string | null | undefined;
    /**
     * The ownership indicates the type of ownership of the company.
     */
    ownership?: string | null | undefined;
    /**
     * A sales tax number is a unique number that identifies a company for tax purposes.
     */
    salesTaxNumber?: string | null | undefined;
    /**
     * A payee number is a unique number that identifies a payee for tax purposes.
     */
    payeeNumber?: string | null | undefined;
    /**
     * An ABN is necessary for operating a business, while a TFN (Tax File Number) is required for any person working in Australia.
     */
    abnOrTfn?: string | null | undefined;
    /**
     * An ABN Branch (also known as a GST Branch) is used if part of your business needs to account for GST separately from its parent entity.
     */
    abnBranch?: string | null | undefined;
    /**
     * The Australian Company Number (ACN) is a nine digit number with the last digit being a check digit calculated using a modified modulus 10 calculation. ASIC has adopted a convention of always printing and displaying the ACN in the format XXX XXX XXX; three blocks of three characters, each block separated by a blank.
     */
    acn?: string | null | undefined;
    /**
     * The first name of the person.
     */
    firstName?: string | null | undefined;
    /**
     * The last name of the person.
     */
    lastName?: string | null | undefined;
    bankAccounts?: Array<BankAccount1> | undefined;
    websites?: Array<Website> | undefined;
    addresses?: Array<Address> | undefined;
    socialLinks?: Array<SocialLink> | undefined;
    phoneNumbers?: Array<PhoneNumber> | undefined;
    emails?: Array<Email> | undefined;
    rowType?: CompanyRowType | undefined;
    customFields?: Array<CustomField> | undefined;
    tags?: Array<string> | null | undefined;
    /**
     * Whether the company is read-only or not
     */
    readOnly?: boolean | null | undefined;
    /**
     * A formal salutation for the person. For example, 'Mr', 'Mrs'
     */
    salutation?: string | null | undefined;
    /**
     * The date of birth of the person.
     */
    birthday?: RFCDate | null | undefined;
    /**
     * The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources.
     */
    passThrough?: Array<PassThroughBody> | undefined;
};
/** @internal */
export declare const CompanyRowType$inboundSchema: z.ZodType<CompanyRowType, z.ZodTypeDef, unknown>;
/** @internal */
export type CompanyRowType$Outbound = {
    id?: string | null | undefined;
    name?: string | null | undefined;
};
/** @internal */
export declare const CompanyRowType$outboundSchema: z.ZodType<CompanyRowType$Outbound, z.ZodTypeDef, CompanyRowType>;
export declare function companyRowTypeToJSON(companyRowType: CompanyRowType): string;
export declare function companyRowTypeFromJSON(jsonString: string): SafeParseResult<CompanyRowType, SDKValidationError>;
/** @internal */
export declare const Company1$inboundSchema: z.ZodType<Company1, z.ZodTypeDef, unknown>;
export declare function company1FromJSON(jsonString: string): SafeParseResult<Company1, SDKValidationError>;
/** @internal */
export type Company1Input$Outbound = {
    name: string | null;
    owner_id?: string | null | undefined;
    image?: string | null | undefined;
    description?: string | null | undefined;
    vat_number?: string | null | undefined;
    currency?: string | null | undefined;
    status?: string | null | undefined;
    fax?: string | null | undefined;
    annual_revenue?: string | null | undefined;
    number_of_employees?: string | null | undefined;
    industry?: string | null | undefined;
    ownership?: string | null | undefined;
    sales_tax_number?: string | null | undefined;
    payee_number?: string | null | undefined;
    abn_or_tfn?: string | null | undefined;
    abn_branch?: string | null | undefined;
    acn?: string | null | undefined;
    first_name?: string | null | undefined;
    last_name?: string | null | undefined;
    bank_accounts?: Array<BankAccount1$Outbound> | undefined;
    websites?: Array<Website$Outbound> | undefined;
    addresses?: Array<Address$Outbound> | undefined;
    social_links?: Array<SocialLink$Outbound> | undefined;
    phone_numbers?: Array<PhoneNumber$Outbound> | undefined;
    emails?: Array<Email$Outbound> | undefined;
    row_type?: CompanyRowType$Outbound | undefined;
    custom_fields?: Array<CustomField$Outbound> | undefined;
    tags?: Array<string> | null | undefined;
    read_only?: boolean | null | undefined;
    salutation?: string | null | undefined;
    birthday?: string | null | undefined;
    pass_through?: Array<PassThroughBody$Outbound> | undefined;
};
/** @internal */
export declare const Company1Input$outboundSchema: z.ZodType<Company1Input$Outbound, z.ZodTypeDef, Company1Input>;
export declare function company1InputToJSON(company1Input: Company1Input): string;
//# sourceMappingURL=company1.d.ts.map