import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { PassThroughBody, PassThroughBody$Outbound } from "./passthroughbody.js";
/**
 * Based on the status some functionality is enabled or disabled.
 */
export declare const TrackingCategoryStatus: {
    readonly Active: "active";
    readonly Inactive: "inactive";
};
/**
 * Based on the status some functionality is enabled or disabled.
 */
export type TrackingCategoryStatus = ClosedEnum<typeof TrackingCategoryStatus>;
export type TrackingCategorySubsidiaries = {
    /**
     * The ID of the subsidiary.
     */
    id?: string | undefined;
};
export type TrackingCategory = {
    /**
     * A unique identifier for an object.
     */
    id?: string | undefined;
    /**
     * A unique identifier for an object.
     */
    parentId?: string | null | undefined;
    /**
     * The name of the parent tracking category.
     */
    parentName?: string | null | undefined;
    /**
     * The name of the tracking category.
     */
    name?: string | undefined;
    /**
     * The code of the tracking category.
     */
    code?: string | null | undefined;
    /**
     * Based on the status some functionality is enabled or disabled.
     */
    status?: TrackingCategoryStatus | undefined;
    /**
     * When custom mappings are configured on the resource, the result is included here.
     */
    customMappings?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object.
     */
    rowVersion?: string | null | undefined;
    /**
     * The user who last updated the object.
     */
    updatedBy?: string | null | undefined;
    /**
     * The user who created the object.
     */
    createdBy?: string | null | undefined;
    /**
     * The date and time when the object was last updated.
     */
    updatedAt?: Date | null | undefined;
    /**
     * The date and time when the object was created.
     */
    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;
    /**
     * The subsidiaries the account belongs to.
     */
    subsidiaries?: Array<TrackingCategorySubsidiaries> | undefined;
};
export type TrackingCategoryInput = {
    /**
     * A unique identifier for an object.
     */
    parentId?: string | null | undefined;
    /**
     * The name of the parent tracking category.
     */
    parentName?: string | null | undefined;
    /**
     * The name of the tracking category.
     */
    name?: string | undefined;
    /**
     * The code of the tracking category.
     */
    code?: string | null | undefined;
    /**
     * Based on the status some functionality is enabled or disabled.
     */
    status?: TrackingCategoryStatus | undefined;
    /**
     * A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object.
     */
    rowVersion?: string | 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;
    /**
     * The subsidiaries the account belongs to.
     */
    subsidiaries?: Array<TrackingCategorySubsidiaries> | undefined;
};
/** @internal */
export declare const TrackingCategoryStatus$inboundSchema: z.ZodNativeEnum<typeof TrackingCategoryStatus>;
/** @internal */
export declare const TrackingCategoryStatus$outboundSchema: z.ZodNativeEnum<typeof TrackingCategoryStatus>;
/** @internal */
export declare const TrackingCategorySubsidiaries$inboundSchema: z.ZodType<TrackingCategorySubsidiaries, z.ZodTypeDef, unknown>;
/** @internal */
export type TrackingCategorySubsidiaries$Outbound = {
    id?: string | undefined;
};
/** @internal */
export declare const TrackingCategorySubsidiaries$outboundSchema: z.ZodType<TrackingCategorySubsidiaries$Outbound, z.ZodTypeDef, TrackingCategorySubsidiaries>;
export declare function trackingCategorySubsidiariesToJSON(trackingCategorySubsidiaries: TrackingCategorySubsidiaries): string;
export declare function trackingCategorySubsidiariesFromJSON(jsonString: string): SafeParseResult<TrackingCategorySubsidiaries, SDKValidationError>;
/** @internal */
export declare const TrackingCategory$inboundSchema: z.ZodType<TrackingCategory, z.ZodTypeDef, unknown>;
export declare function trackingCategoryFromJSON(jsonString: string): SafeParseResult<TrackingCategory, SDKValidationError>;
/** @internal */
export type TrackingCategoryInput$Outbound = {
    parent_id?: string | null | undefined;
    parent_name?: string | null | undefined;
    name?: string | undefined;
    code?: string | null | undefined;
    status?: string | undefined;
    row_version?: string | null | undefined;
    pass_through?: Array<PassThroughBody$Outbound> | undefined;
    subsidiaries?: Array<TrackingCategorySubsidiaries$Outbound> | undefined;
};
/** @internal */
export declare const TrackingCategoryInput$outboundSchema: z.ZodType<TrackingCategoryInput$Outbound, z.ZodTypeDef, TrackingCategoryInput>;
export declare function trackingCategoryInputToJSON(trackingCategoryInput: TrackingCategoryInput): string;
//# sourceMappingURL=trackingcategory.d.ts.map