import * as z from "zod";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export declare enum Categories {
    Ats = "ats",
    Hris = "hris",
    HrisLegacy = "hris-legacy",
    Crm = "crm",
    Iam = "iam",
    Marketing = "marketing",
    Lms = "lms",
    Stackone = "stackone",
    Documents = "documents",
    Ticketing = "ticketing",
    Screening = "screening",
    Messaging = "messaging"
}
/**
 * Arbitrary set of key and values defined during the session token creation. This can be used to tag an account (eg. based on their pricing plan)
 */
export type Metadata = {};
export type ConnectSession = {
    accountId?: string | null | undefined;
    categories?: Array<Categories> | null | undefined;
    createdAt: Date;
    /**
     * External trigger token to be used to trigger actions on the account
     */
    externalTriggerToken?: string | null | undefined;
    id: number;
    label?: string | null | undefined;
    /**
     * Arbitrary set of key and values defined during the session token creation. This can be used to tag an account (eg. based on their pricing plan)
     */
    metadata?: Metadata | null | undefined;
    organizationId: number;
    originOwnerId: string;
    originOwnerName: string;
    originUsername?: string | null | undefined;
    projectId: string;
    provider?: string | null | undefined;
};
/** @internal */
export declare const Categories$inboundSchema: z.ZodNativeEnum<typeof Categories>;
/** @internal */
export declare const Categories$outboundSchema: z.ZodNativeEnum<typeof Categories>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Categories$ {
    /** @deprecated use `Categories$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<typeof Categories>;
    /** @deprecated use `Categories$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<typeof Categories>;
}
/** @internal */
export declare const Metadata$inboundSchema: z.ZodType<Metadata, z.ZodTypeDef, unknown>;
/** @internal */
export type Metadata$Outbound = {};
/** @internal */
export declare const Metadata$outboundSchema: z.ZodType<Metadata$Outbound, z.ZodTypeDef, Metadata>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Metadata$ {
    /** @deprecated use `Metadata$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Metadata, z.ZodTypeDef, unknown>;
    /** @deprecated use `Metadata$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Metadata$Outbound, z.ZodTypeDef, Metadata>;
    /** @deprecated use `Metadata$Outbound` instead. */
    type Outbound = Metadata$Outbound;
}
export declare function metadataToJSON(metadata: Metadata): string;
export declare function metadataFromJSON(jsonString: string): SafeParseResult<Metadata, SDKValidationError>;
/** @internal */
export declare const ConnectSession$inboundSchema: z.ZodType<ConnectSession, z.ZodTypeDef, unknown>;
/** @internal */
export type ConnectSession$Outbound = {
    account_id?: string | null | undefined;
    categories?: Array<string> | null | undefined;
    created_at: string;
    external_trigger_token?: string | null | undefined;
    id: number;
    label?: string | null | undefined;
    metadata?: Metadata$Outbound | null | undefined;
    organization_id: number;
    origin_owner_id: string;
    origin_owner_name: string;
    origin_username?: string | null | undefined;
    project_id: string;
    provider?: string | null | undefined;
};
/** @internal */
export declare const ConnectSession$outboundSchema: z.ZodType<ConnectSession$Outbound, z.ZodTypeDef, ConnectSession>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ConnectSession$ {
    /** @deprecated use `ConnectSession$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ConnectSession, z.ZodTypeDef, unknown>;
    /** @deprecated use `ConnectSession$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ConnectSession$Outbound, z.ZodTypeDef, ConnectSession>;
    /** @deprecated use `ConnectSession$Outbound` instead. */
    type Outbound = ConnectSession$Outbound;
}
export declare function connectSessionToJSON(connectSession: ConnectSession): string;
export declare function connectSessionFromJSON(jsonString: string): SafeParseResult<ConnectSession, SDKValidationError>;
//# sourceMappingURL=connectsession.d.ts.map