import * as z from "zod";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { TabExtensionData, TabExtensionData$Outbound } from "./tabextensiondata.js";
export type Tab = {
    extensionData: TabExtensionData;
    /**
     * Indicates the type of tab
     */
    tabType: string;
    /**
     * A regular expression used to validate input for the tab.
     */
    validationPattern?: string | undefined;
    /**
     * The message displayed if the custom tab fails input validation
     */
    validationMessage?: string | undefined;
    /**
     * The label associated to a verification field in a document.
     */
    tabLabel: string;
    /**
     * The radio button properties for the tab (if the tab is of radio type)
     */
    radios?: Array<string> | undefined;
};
/** @internal */
export declare const Tab$inboundSchema: z.ZodType<Tab, z.ZodTypeDef, unknown>;
/** @internal */
export type Tab$Outbound = {
    extensionData: TabExtensionData$Outbound;
    tabType: string;
    validationPattern?: string | undefined;
    validationMessage?: string | undefined;
    tabLabel: string;
    radios?: Array<string> | undefined;
};
/** @internal */
export declare const Tab$outboundSchema: z.ZodType<Tab$Outbound, z.ZodTypeDef, Tab>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Tab$ {
    /** @deprecated use `Tab$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Tab, z.ZodTypeDef, unknown>;
    /** @deprecated use `Tab$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Tab$Outbound, z.ZodTypeDef, Tab>;
    /** @deprecated use `Tab$Outbound` instead. */
    type Outbound = Tab$Outbound;
}
export declare function tabToJSON(tab: Tab): string;
export declare function tabFromJSON(jsonString: string): SafeParseResult<Tab, SDKValidationError>;
//# sourceMappingURL=tab.d.ts.map