import * as z from "zod/v3";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { JournalLine, JournalLine$Outbound } from "./journalline.js";
export type AccountingJournal4 = {};
export type AccountingJournalSourceValue = string | number | boolean | AccountingJournal4 | Array<any>;
/**
 * The journal status
 */
export declare enum AccountingJournalValue {
    Draft = "draft",
    Posted = "posted",
    Void = "void",
    UnmappedValue = "unmapped_value"
}
/**
 * The journal status
 */
export type AccountingJournalValueOpen = OpenEnum<typeof AccountingJournalValue>;
/**
 * Status of the journal
 */
export type Status = {
    sourceValue?: string | number | boolean | AccountingJournal4 | Array<any> | null | undefined;
    /**
     * The journal status
     */
    value?: AccountingJournalValueOpen | null | undefined;
};
export type AccountingJournal = {
    /**
     * ID of the company this journal belongs to
     */
    companyId?: string | null | undefined;
    /**
     * Timestamp when the journal was created
     */
    createdAt?: Date | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * List of journal lines
     */
    lines?: Array<JournalLine> | null | undefined;
    /**
     * Memo or description for the journal
     */
    memo?: string | null | undefined;
    /**
     * Timestamp when the journal was posted
     */
    postedAt?: Date | null | undefined;
    /**
     * Reference number for the journal
     */
    reference?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    /**
     * Status of the journal
     */
    status?: Status | null | undefined;
    /**
     * Date of the journal transaction
     */
    transactionDate?: Date | null | undefined;
    /**
     * Timestamp when the journal was last updated
     */
    updatedAt?: Date | null | undefined;
};
/** @internal */
export declare const AccountingJournal4$inboundSchema: z.ZodType<AccountingJournal4, z.ZodTypeDef, unknown>;
/** @internal */
export type AccountingJournal4$Outbound = {};
/** @internal */
export declare const AccountingJournal4$outboundSchema: z.ZodType<AccountingJournal4$Outbound, z.ZodTypeDef, AccountingJournal4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AccountingJournal4$ {
    /** @deprecated use `AccountingJournal4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AccountingJournal4, z.ZodTypeDef, unknown>;
    /** @deprecated use `AccountingJournal4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AccountingJournal4$Outbound, z.ZodTypeDef, AccountingJournal4>;
    /** @deprecated use `AccountingJournal4$Outbound` instead. */
    type Outbound = AccountingJournal4$Outbound;
}
export declare function accountingJournal4ToJSON(accountingJournal4: AccountingJournal4): string;
export declare function accountingJournal4FromJSON(jsonString: string): SafeParseResult<AccountingJournal4, SDKValidationError>;
/** @internal */
export declare const AccountingJournalSourceValue$inboundSchema: z.ZodType<AccountingJournalSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type AccountingJournalSourceValue$Outbound = string | number | boolean | AccountingJournal4$Outbound | Array<any>;
/** @internal */
export declare const AccountingJournalSourceValue$outboundSchema: z.ZodType<AccountingJournalSourceValue$Outbound, z.ZodTypeDef, AccountingJournalSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AccountingJournalSourceValue$ {
    /** @deprecated use `AccountingJournalSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AccountingJournalSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `AccountingJournalSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AccountingJournalSourceValue$Outbound, z.ZodTypeDef, AccountingJournalSourceValue>;
    /** @deprecated use `AccountingJournalSourceValue$Outbound` instead. */
    type Outbound = AccountingJournalSourceValue$Outbound;
}
export declare function accountingJournalSourceValueToJSON(accountingJournalSourceValue: AccountingJournalSourceValue): string;
export declare function accountingJournalSourceValueFromJSON(jsonString: string): SafeParseResult<AccountingJournalSourceValue, SDKValidationError>;
/** @internal */
export declare const AccountingJournalValue$inboundSchema: z.ZodType<AccountingJournalValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const AccountingJournalValue$outboundSchema: z.ZodType<AccountingJournalValueOpen, z.ZodTypeDef, AccountingJournalValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AccountingJournalValue$ {
    /** @deprecated use `AccountingJournalValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AccountingJournalValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `AccountingJournalValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AccountingJournalValueOpen, z.ZodTypeDef, AccountingJournalValueOpen>;
}
/** @internal */
export declare const Status$inboundSchema: z.ZodType<Status, z.ZodTypeDef, unknown>;
/** @internal */
export type Status$Outbound = {
    source_value?: string | number | boolean | AccountingJournal4$Outbound | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const Status$outboundSchema: z.ZodType<Status$Outbound, z.ZodTypeDef, Status>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Status$ {
    /** @deprecated use `Status$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Status, z.ZodTypeDef, unknown>;
    /** @deprecated use `Status$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Status$Outbound, z.ZodTypeDef, Status>;
    /** @deprecated use `Status$Outbound` instead. */
    type Outbound = Status$Outbound;
}
export declare function statusToJSON(status: Status): string;
export declare function statusFromJSON(jsonString: string): SafeParseResult<Status, SDKValidationError>;
/** @internal */
export declare const AccountingJournal$inboundSchema: z.ZodType<AccountingJournal, z.ZodTypeDef, unknown>;
/** @internal */
export type AccountingJournal$Outbound = {
    company_id?: string | null | undefined;
    created_at?: string | null | undefined;
    id?: string | null | undefined;
    lines?: Array<JournalLine$Outbound> | null | undefined;
    memo?: string | null | undefined;
    posted_at?: string | null | undefined;
    reference?: string | null | undefined;
    remote_id?: string | null | undefined;
    status?: Status$Outbound | null | undefined;
    transaction_date?: string | null | undefined;
    updated_at?: string | null | undefined;
};
/** @internal */
export declare const AccountingJournal$outboundSchema: z.ZodType<AccountingJournal$Outbound, z.ZodTypeDef, AccountingJournal>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AccountingJournal$ {
    /** @deprecated use `AccountingJournal$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AccountingJournal, z.ZodTypeDef, unknown>;
    /** @deprecated use `AccountingJournal$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AccountingJournal$Outbound, z.ZodTypeDef, AccountingJournal>;
    /** @deprecated use `AccountingJournal$Outbound` instead. */
    type Outbound = AccountingJournal$Outbound;
}
export declare function accountingJournalToJSON(accountingJournal: AccountingJournal): string;
export declare function accountingJournalFromJSON(jsonString: string): SafeParseResult<AccountingJournal, SDKValidationError>;
//# sourceMappingURL=accountingjournal.d.ts.map