import * as z from "zod";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { TabConnectedFieldsData, TabConnectedFieldsData$Outbound } from "./tabconnectedfieldsdata.js";
import { TabConnectionInstance, TabConnectionInstance$Outbound } from "./tabconnectioninstance.js";
/**
 * Indicates if the field is required to sign the document
 */
export declare const ExtensionPolicy: {
    readonly None: "None";
};
/**
 * Indicates if the field is required to sign the document
 */
export type ExtensionPolicy = ClosedEnum<typeof ExtensionPolicy>;
export type TabExtensionData = {
    /**
     * A unique UUID for each tab group. Tabs associated with the same model or concept will share the same extensionGroupId.
     */
    extensionGroupId: string;
    /**
     * Determines input data key required for data verification.
     */
    actionInputKey: string;
    /**
     * Indicates if the field is required to sign the document
     */
    extensionPolicy?: ExtensionPolicy | undefined;
    /**
     * Publisher of the extension app.
     */
    publisherName?: string | undefined;
    /**
     * Name of the extension app.
     */
    applicationName?: string | undefined;
    /**
     * Name of an action in an extension app.
     */
    actionName?: string | undefined;
    /**
     * Indicates the  template that defines an extension.
     */
    extensionContract?: string | undefined;
    /**
     * Indicates the template defining an action.
     */
    actionContract?: string | undefined;
    /**
     * Name of the extension.
     */
    extensionName?: string | undefined;
    /**
     * A boolean value that indicates if the field must pass verification to sign the document.
     */
    requiredForExtension: boolean;
    /**
     * Array representing the extension app connection name and instance.
     */
    connectionInstances?: Array<TabConnectionInstance> | undefined;
    connectedFieldsData?: TabConnectedFieldsData | undefined;
};
/** @internal */
export declare const ExtensionPolicy$inboundSchema: z.ZodNativeEnum<typeof ExtensionPolicy>;
/** @internal */
export declare const ExtensionPolicy$outboundSchema: z.ZodNativeEnum<typeof ExtensionPolicy>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ExtensionPolicy$ {
    /** @deprecated use `ExtensionPolicy$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly None: "None";
    }>;
    /** @deprecated use `ExtensionPolicy$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly None: "None";
    }>;
}
/** @internal */
export declare const TabExtensionData$inboundSchema: z.ZodType<TabExtensionData, z.ZodTypeDef, unknown>;
/** @internal */
export type TabExtensionData$Outbound = {
    extensionGroupId: string;
    actionInputKey: string;
    extensionPolicy?: string | undefined;
    publisherName?: string | undefined;
    applicationName?: string | undefined;
    actionName?: string | undefined;
    extensionContract?: string | undefined;
    actionContract?: string | undefined;
    extensionName?: string | undefined;
    requiredForExtension: boolean;
    connectionInstances?: Array<TabConnectionInstance$Outbound> | undefined;
    connectedFieldsData?: TabConnectedFieldsData$Outbound | undefined;
};
/** @internal */
export declare const TabExtensionData$outboundSchema: z.ZodType<TabExtensionData$Outbound, z.ZodTypeDef, TabExtensionData>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TabExtensionData$ {
    /** @deprecated use `TabExtensionData$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TabExtensionData, z.ZodTypeDef, unknown>;
    /** @deprecated use `TabExtensionData$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TabExtensionData$Outbound, z.ZodTypeDef, TabExtensionData>;
    /** @deprecated use `TabExtensionData$Outbound` instead. */
    type Outbound = TabExtensionData$Outbound;
}
export declare function tabExtensionDataToJSON(tabExtensionData: TabExtensionData): string;
export declare function tabExtensionDataFromJSON(jsonString: string): SafeParseResult<TabExtensionData, SDKValidationError>;
//# sourceMappingURL=tabextensiondata.d.ts.map