import * as z from "zod";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { StatusReason, StatusReason$Outbound } from "./statusreason.js";
export type Credentials = {};
export type SetupInformation = {};
export declare enum LinkedAccountStatus {
    Active = "active",
    Inactive = "inactive",
    Error = "error"
}
export type LinkedAccountStatusOpen = OpenEnum<typeof LinkedAccountStatus>;
export type LinkedAccount = {
    createdAt: Date;
    credentials?: Credentials | null | undefined;
    id: string;
    label?: string | null | undefined;
    originOwnerId: string;
    originOwnerName: string;
    originUsername?: string | null | undefined;
    provider: string;
    setupInformation?: SetupInformation | null | undefined;
    status: LinkedAccountStatusOpen;
    statusReasons?: Array<StatusReason> | null | undefined;
    updatedAt: Date;
};
/** @internal */
export declare const Credentials$inboundSchema: z.ZodType<Credentials, z.ZodTypeDef, unknown>;
/** @internal */
export type Credentials$Outbound = {};
/** @internal */
export declare const Credentials$outboundSchema: z.ZodType<Credentials$Outbound, z.ZodTypeDef, Credentials>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Credentials$ {
    /** @deprecated use `Credentials$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Credentials, z.ZodTypeDef, unknown>;
    /** @deprecated use `Credentials$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Credentials$Outbound, z.ZodTypeDef, Credentials>;
    /** @deprecated use `Credentials$Outbound` instead. */
    type Outbound = Credentials$Outbound;
}
export declare function credentialsToJSON(credentials: Credentials): string;
export declare function credentialsFromJSON(jsonString: string): SafeParseResult<Credentials, SDKValidationError>;
/** @internal */
export declare const SetupInformation$inboundSchema: z.ZodType<SetupInformation, z.ZodTypeDef, unknown>;
/** @internal */
export type SetupInformation$Outbound = {};
/** @internal */
export declare const SetupInformation$outboundSchema: z.ZodType<SetupInformation$Outbound, z.ZodTypeDef, SetupInformation>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SetupInformation$ {
    /** @deprecated use `SetupInformation$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SetupInformation, z.ZodTypeDef, unknown>;
    /** @deprecated use `SetupInformation$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SetupInformation$Outbound, z.ZodTypeDef, SetupInformation>;
    /** @deprecated use `SetupInformation$Outbound` instead. */
    type Outbound = SetupInformation$Outbound;
}
export declare function setupInformationToJSON(setupInformation: SetupInformation): string;
export declare function setupInformationFromJSON(jsonString: string): SafeParseResult<SetupInformation, SDKValidationError>;
/** @internal */
export declare const LinkedAccountStatus$inboundSchema: z.ZodType<LinkedAccountStatusOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const LinkedAccountStatus$outboundSchema: z.ZodType<LinkedAccountStatusOpen, z.ZodTypeDef, LinkedAccountStatusOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace LinkedAccountStatus$ {
    /** @deprecated use `LinkedAccountStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodType<LinkedAccountStatusOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `LinkedAccountStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodType<LinkedAccountStatusOpen, z.ZodTypeDef, LinkedAccountStatusOpen>;
}
/** @internal */
export declare const LinkedAccount$inboundSchema: z.ZodType<LinkedAccount, z.ZodTypeDef, unknown>;
/** @internal */
export type LinkedAccount$Outbound = {
    created_at: string;
    credentials?: Credentials$Outbound | null | undefined;
    id: string;
    label?: string | null | undefined;
    origin_owner_id: string;
    origin_owner_name: string;
    origin_username?: string | null | undefined;
    provider: string;
    setup_information?: SetupInformation$Outbound | null | undefined;
    status: string;
    status_reasons?: Array<StatusReason$Outbound> | null | undefined;
    updated_at: string;
};
/** @internal */
export declare const LinkedAccount$outboundSchema: z.ZodType<LinkedAccount$Outbound, z.ZodTypeDef, LinkedAccount>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace LinkedAccount$ {
    /** @deprecated use `LinkedAccount$inboundSchema` instead. */
    const inboundSchema: z.ZodType<LinkedAccount, z.ZodTypeDef, unknown>;
    /** @deprecated use `LinkedAccount$outboundSchema` instead. */
    const outboundSchema: z.ZodType<LinkedAccount$Outbound, z.ZodTypeDef, LinkedAccount>;
    /** @deprecated use `LinkedAccount$Outbound` instead. */
    type Outbound = LinkedAccount$Outbound;
}
export declare function linkedAccountToJSON(linkedAccount: LinkedAccount): string;
export declare function linkedAccountFromJSON(jsonString: string): SafeParseResult<LinkedAccount, SDKValidationError>;
//# sourceMappingURL=linkedaccount.d.ts.map