/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run json-schema-to-typescript to regenerate this file.
 */
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "args".
 */
export type Args = string | ObjectSchema | ExtendsSchema;
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "objectSchema".
 */
export type ObjectSchema = PropertySchema & {
    type: 'object';
    properties: {
        [k: string]: PropertySchema;
    };
};
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "nonNegativeInteger".
 */
export type NonNegativeInteger = number;
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "nonNegativeIntegerDefault0".
 */
export type NonNegativeIntegerDefault0 = NonNegativeInteger;
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "stringArray".
 */
export type StringArray = string[];
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "simpleTypes".
 */
export type SimpleTypes = 'array' | 'boolean' | 'integer' | 'null' | 'number' | 'object' | 'string';
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "schemaArray".
 */
export type SchemaArray = PropertySchema[];
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "ref".
 */
export type Ref = string;
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "objectOrRefArray".
 */
export type ObjectOrRefArray = (RefSchema | RefSchemaLegacy | ObjectSchema)[];
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "fieldMapping".
 */
export type FieldMapping = MappingString | MappingString[];
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "mappingString".
 */
export type MappingString = string;
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "resolver".
 */
export type Resolver = BasicResolver | ComposeResolver;
/**
 * A single resolver, can be composed with the ComposeResolver.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "basicResolver".
 */
export type BasicResolver = UtilResolver | DelegateResolver | FetchAllResolver | TakeshapeResolver | AIHybridSearchResolver | ShapedbResolver | ShapedbResolverShapeNameNotRequired | GraphqlResolver | RestResolver | AwsLambdaResolver | SalsifyResolver | SyndigoResolver | FunctionResolver | AIGenerateTextResolver | AIGeneratePropertyResolver | AIEmbeddingResolver | AIEmbeddingSearchResolver | AIParseFileResolver | ChunkResolver | AISendAgentMessageResolver | AIInspectAgentResolver | AICreateAgentSessionResolver | AIGetAgentMessageResolver | AIAbortAgentMessageResolver | AISendAgentFeedbackResolver;
/**
 * Name of the resolver function.
 */
export type UtilResolverName = 'util:noop' | 'util:wrap';
/**
 * An object describing an operation to generate a parameter.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterOp".
 */
export type ParameterOp = ParameterOpNested | ParameterOpValue | ParameterOpMapping | ParameterOpOp;
/**
 * A tuple with a string directive name, and options to pass to the directive
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "directiveConfigItem".
 */
export type DirectiveConfigItem = [DirectiveName, DirectiveOptions];
export type DirectiveName = string;
/**
 * An array of individual directive config items to process in order
 *
 * This interface was referenced by `DirectiveMappingMap`'s JSON-Schema definition
 * via the `patternProperty` "[0-9A-Za-z_-]+".
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "directiveConfig".
 */
export type DirectiveConfig = DirectiveConfigItem[];
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterOpList".
 */
export type ParameterOpList = ParameterOp[];
/**
 * Maps a query's input args to the input expected by the service's endpoint.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "argsMapping".
 */
export type ArgsMapping = DirectiveMappingMap | DirectiveConfig;
/**
 * Maps a service endpoint's response results to the expected shape of the query's response.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "resultsMapping".
 */
export type ResultsMapping = DirectiveMappingMap | DirectiveConfig;
/**
 * Name of the resolver function.
 */
export type DelegateResolverName = 'delegate';
/**
 * Name of the resolver function.
 */
export type FetchAllResolverName = 'fetchAll';
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "paginationConfig".
 */
export type PaginationConfig = PaginationCursorConfig | PaginationPageConfig | PaginationOffsetConfig;
/**
 * Name of the resolver function.
 */
export type TakeshapeResolverName = 'takeshape:get' | 'takeshape:getUser' | 'takeshape:search' | 'takeshape:vectorSearch' | 'takeshape:queryApiIndex' | 'takeshape:assetUrl' | 'takeshape:assetImage' | 'takeshape:assetImageMeta';
/**
 * Name of the resolver function.
 */
export type AIHybridSearchResolverName = 'ai:hybridSearch';
/**
 * Name of the resolver function.
 */
export type ShapedbResolverName = 'shapedb:get' | 'shapedb:create' | 'shapedb:update' | 'shapedb:delete' | 'shapedb:duplicate' | 'shapedb:find';
/**
 * Name of the resolver function.
 */
export type ShapedbResolverShapeNameNotRequiredName = 'shapedb:list' | 'shapedb:taxonomySuggest' | 'shapedb:getRelated';
/**
 * Name of the resolver function.
 */
export type GraphqlResolverName = 'graphql:query' | 'graphql:mutation' | 'shopify:bulkQuery';
/**
 * Name of the resolver function.
 */
export type RestResolverName = 'rest:get' | 'rest:head' | 'rest:post' | 'rest:put' | 'rest:patch' | 'rest:delete';
/**
 * A tuple with a string key and a directive config to evaluate
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "directiveMappingArrayItem".
 */
export type DirectiveMappingArrayItem = [string, DirectiveConfig];
/**
 * An array of key / value or directive config tuples
 */
export type SearchParamsMapping = DirectiveMappingArrayItem[];
/**
 * Name of the resolver function.
 */
export type AwsLambdaResolverName = 'awsLambda:invoke';
/**
 * Name of the resolver function.
 */
export type SalsifyResolverName = 'salsify:listChannelProducts';
/**
 * Name of the resolver function.
 */
export type SyndigoResolverName = 'syndigo:searchProducts';
/**
 * Name of the resolver function.
 */
export type FunctionResolverName = 'function:run';
export type FunctionResolverJavascript = string;
/**
 * Name of the resolver function.
 */
export type AIResolverName = 'ai:generateText' | 'ai:chat';
export type History = boolean;
/**
 * Maximum number of tokens to generate.
 */
export type MaximumTokens = number;
/**
 * This is a number between 0 (almost no randomness) and 1 (very random). It is recommended to set either `temperature` or `topP`, but not both. Defaults to 0
 */
export type Temperature = number;
/**
 * Nucleus sampling. This is a number between 0 and 1. E.g. 0.1 would mean that only tokens with the top 10% probability mass are considered. It is recommended to set either `temperature` or `topP`, but not both.
 */
export type TopP = number;
/**
 * Only sample from the top K options for each subsequent token. Used to remove "long tail" low probability responses. Recommended for advanced use cases only. You usually only need to use temperature.
 */
export type TopK = number;
/**
 * It affects the likelihood of the model to repeat information that is already in the prompt. The presence penalty is a number between -1 (increase repetition) and 1 (maximum penalty, decrease repetition). 0 means no penalty.
 */
export type PresencePenaltySetting = number;
/**
 * It affects the likelihood of the model  to repeatedly use the same words or phrases. The frequency penalty is a number between -1 (increase repetition) and 1 (maximum penalty, decrease repetition). 0 means no penalty.
 */
export type FrequencyPenaltySetting = number;
/**
 * If set, the model will stop generating text when one of the stop sequences is generated.
 */
export type StopSequences = string[];
/**
 *  The seed (integer) to use for random sampling. If set and supported by the model, calls will generate deterministic results.
 */
export type Seed = number;
/**
 * Enable prompt caching for supported providers (e.g., Anthropic). Reduces token costs by caching system messages, tools, and conversation history.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "promptCaching".
 */
export type PromptCaching = boolean;
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentToolConfigArg".
 */
export type AgentToolConfigArg = AgentControlled | VariableValue;
/**
 * The argument name that will be exposed by the tool for the LLM to use.
 */
export type ToolArgumentName = string;
/**
 * Name of argument to pass value to. This prevents the LLM from setting the argument.
 */
export type ToolArgumentName1 = string;
/**
 * Name of variable to pull value from.
 */
export type StateVariableName = string;
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "aiGuardrail".
 */
export type AIGuardrail = AISimilarityGuardrail;
/**
 * Name of the resolver function.
 */
export type AIResolverName1 = 'ai:generateProperty';
/**
 * Name of the resolver function.
 */
export type AIResolverName2 = 'ai:createEmbedding';
/**
 * Name of the resolver function.
 */
export type AIResolverName3 = 'ai:embeddingSearch';
/**
 * Name of the resolver function.
 */
export type AIResolverName4 = 'ai:parseFile';
/**
 * Name of the resolver function.
 */
export type UtilResolverName1 = 'util:chunk';
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "utilChunkResolverOptions".
 */
export type UtilChunkResolverOptions = UtilChunkResolverOptionsCharacterCount | UtilChunkResolverOptionsSeparators | UtilChunkResolverOptionsMarkdown | UtilChunkResolverOptionsSemantic;
/**
 * Name of the resolver function.
 */
export type AIResolverName5 = 'ai:sendAgentMessage';
/**
 * Name of the resolver function.
 */
export type AIResolverName6 = 'ai:inspectAgent';
/**
 * Name of the resolver function.
 */
export type AIResolverName7 = 'ai:createAgentSession';
/**
 * Name of the resolver function.
 */
export type AIResolverName8 = 'ai:getAgentMessage';
/**
 * Name of the resolver function.
 */
export type AIResolverName9 = 'ai:abortAgentMessage';
/**
 * Name of the resolver function.
 */
export type AIResolverName10 = 'ai:sendAgentFeedback';
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "dependencies".
 */
export type Dependencies = string;
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "extendsSchema".
 */
export type ExtendsSchema = PropertySchema & {
    extends: ObjectOrRefArray;
};
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "returnShape".
 */
export type ReturnShape = string | ReturnShapeArraySchema;
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "returnShapeArraySchema".
 */
export type ReturnShapeArraySchema = PropertySchema & {
    type: 'array';
    items: RefSchema | {
        type: 'boolean' | 'integer' | 'number' | 'string' | 'object';
        [k: string]: any;
    };
};
export type ModelType = 'single' | 'multiple' | 'taxonomy';
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "cacheTriggerConfig".
 */
export type CacheTriggerConfig = CacheScheduleTriggerConfig | CacheWebhookTriggerConfig;
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "shapeSchema".
 */
export type ShapeSchema = ShapeSchemaAllOf | ShapeSchemaExtends | ShapeSchemaOneOf | ShapeSchemaEnum | ObjectSchema | ShapeSchemaAny;
/**
 * Human-readable id for use in the UI
 */
export type WorkflowName = string;
/**
 * machine-readable slug
 */
export type Name = string;
/**
 * Human-readable id for use in the UI
 */
export type Title = string;
export type Description = string;
/**
 * Hex color code
 */
export type Color = string;
/**
 * Value to indicate whether items in the state should be returned in list queries
 */
export type Live = boolean;
/**
 * machine-readable id
 */
export type Key = string;
export type Steps = WorkflowStep[];
/**
 * The general type of this service, specifying how and where it will be utilized.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "serviceType".
 */
export type ServiceType = 'deployment' | 'authentication' | 'takeshape' | 'rest' | 'graphql' | 'openapi' | 'aws' | 'unknown';
/**
 * The name of a health check to run
 */
export type CheckName = 'graphqlIntrospection' | 'ping' | 'none';
/**
 * The endpoint to use when checking the service health.
 */
export type Endpoint = string;
/**
 * A custom method to use for the health check request.
 */
export type RequestMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
/**
 * A custom body to send along with the ping request.
 */
export type RequestBody = string;
/**
 * A custom body to send along with the ping request.
 */
export type RequestBodyFormat = 'string' | 'form' | 'json' | 'form-data';
/**
 * The amount of time to wait when receiving a response from the health check, in seconds.
 */
export type RequestTimeout = number;
/**
 * The response status code that qualifies as healthy.
 */
export type HealthyResponseStatusCode = number;
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "serviceHealthCheckTrigger".
 */
export type ServiceHealthCheckTrigger = 'manual' | 'schedule';
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentApiInput".
 */
export type AgentAPIInput = AgentAPIMutationInput;
export type InteractionTimeoutMilliseconds = number;
export type AgentStateSessionMemory = AgentStateSessionMemoryAssignment[];
export type Variables = AgentVariable[];
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentExecution".
 */
export type AgentExecution = AgentExecutionGraphQL | AgentExecutionGenerate | AgentExecutionChat;
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentAiStateInput".
 */
export type AgentAIStateInput = AgentAIStateInputArgument | AgentAIStateInputTemplate;
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentAiStateAttachments".
 */
export type AgentAIStateAttachments = AgentAIStateAttachmentsNone | AgentAIStateAttachmentsArg | AgentAIStateAttachmentsExpression;
export type History1 = boolean;
/**
 * Maximum number of tokens to generate. Defaults to 1024
 */
export type MaximumTokens1 = number;
/**
 * This is a number between 0 (almost no randomness) and 1 (very random). It is recommended to set either `temperature` or `topP`, but not both. Defaults to 0
 */
export type Temperature1 = number;
/**
 * Nucleus sampling. This is a number between 0 and 1. E.g. 0.1 would mean that only tokens with the top 10% probability mass are considered. It is recommended to set either `temperature` or `topP`, but not both.
 */
export type TopP1 = number;
/**
 * Only sample from the top K options for each subsequent token. Used to remove "long tail" low probability responses. Recommended for advanced use cases only. You usually only need to use temperature.
 */
export type TopK1 = number;
/**
 * It affects the likelihood of the model to repeat information that is already in the prompt. The presence penalty is a number between -1 (increase repetition) and 1 (maximum penalty, decrease repetition). 0 means no penalty.
 */
export type PresencePenaltySetting1 = number;
/**
 * It affects the likelihood of the model  to repeatedly use the same words or phrases. The frequency penalty is a number between -1 (increase repetition) and 1 (maximum penalty, decrease repetition). 0 means no penalty.
 */
export type FrequencyPenaltySetting1 = number;
/**
 * If set, the model will stop generating text when one of the stop sequences is generated.
 */
export type StopSequences1 = string[];
/**
 *  The seed (integer) to use for random sampling. If set and supported by the model, calls will generate deterministic results.
 */
export type Seed1 = number;
/**
 * Maximal number of automatic roundtrips for tool calls.
 */
export type MaxToolRoundtrips = number;
/**
 * Enable prompt caching for supported providers (e.g., Anthropic). Reduces token costs by caching system messages, tools, and conversation history.
 */
export type PromptCaching1 = boolean;
/**
 * If true, structured outputs will be enabled on the model for non-text requests.
 */
export type StructuredOutputs = boolean;
/**
 * Enable OpenAI schema format. Must be enabled if `structuredOutputs` is enabled.
 */
export type EnableOpenAISchemaFormat = boolean;
export type MinimatchPattern = string;
/**
 * Remove properties from the schema sent to the model with keys matching these minimatch glob patterns.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "removePropertyKeyPatterns".
 */
export type RemovePropertyKeyPatterns = MinimatchPattern[];
/**
 * Remove Markdown formatting from the LLM response
 */
export type StripMarkdown = boolean;
/**
 * These steps are evaluated in order until a destination is found.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentTransition".
 */
export type AgentTransition = AgentTransitionImmediate | AgentTransitionSuspend;
export type AgentStateSessionMemory1 = AgentStateSessionMemoryAssignment[];
export type GuardID = string;
export type Variables1 = AgentVariable[];
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "historyStrategyTransform".
 */
export type HistoryStrategyTransform = HistoryStrategyTransformNone | HistoryStrategyTransformReplace | HistoryStrategyTransformSummarize;
/**
 * Enabling this will require a proof-of-work token to be included with each request. This will prevent abuse and spam.
 */
export type EnableAgentAbuseProtection = boolean;
/**
 * The human-readable name of the Guard.
 */
export type Name1 = string;
/**
 * A description of the Guard.
 */
export type Description1 = string;
/**
 * Guards will not run unless enabled.
 */
export type Enabled = boolean;
/**
 * The remote id of the Guardrail.
 */
export type GuardrailIdentifier = string;
/**
 * The remote version of the Guardrail.
 */
export type GuardrailVersion = string;
/**
 * A message to return when the input message is blocked by the Guard.
 */
export type BlockedInputMessaging = string;
/**
 * A message to return when the output message is blocked by the Guard.
 */
export type BlockedOutputsMessaging = string;
export type Example = string;
/**
 * A topic to block.
 */
export type Topic = {
    name: string;
    definition: string;
    /**
     * Examples of the topic that can hint the LLM.
     */
    examples?: Example[];
    type: 'DENY';
}[];
export type InputStrength = 'NONE' | 'LOW' | 'MEDIUM' | 'HIGH';
export type OutputStrength = 'NONE' | 'LOW' | 'MEDIUM' | 'HIGH';
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "guardrailModality".
 */
export type GuardrailModality = 'TEXT' | 'IMAGE';
/**
 * Whether to filter images or text
 */
export type InputModalities = GuardrailModality[];
/**
 * Whether to filter images or text
 */
export type OutputModalities = GuardrailModality[];
/**
 * Types of content to filter.
 */
export type Filter = {
    type: 'HATE' | 'INSULTS' | 'MICONDUCT' | 'PROMPT_ATTACK' | 'SEXUAL' | 'VIOLENCE';
    inputStrength: InputStrength;
    outputStrength: OutputStrength;
    inputModalities?: InputModalities;
    outputModalities?: OutputModalities;
}[];
/**
 * Specific words to block.
 */
export type WordList = {
    text: string;
}[];
/**
 * This is solely used for blocking profanity.
 */
export type ManagedWordList = {
    type: 'PROFANITY';
}[];
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "guardrailSensitiveInformationAction".
 */
export type GuardrailSensitiveInformationAction = 'ANONYMIZE' | 'BLOCK';
/**
 * PII entity to infer from the text.
 */
export type PIIEntity = {
    type: 'ADDRESS' | 'AGE' | 'AWS_ACCESS_KEY' | 'AWS_SECRET_KEY' | 'CA_HEALTH_NUMBER' | 'CA_SOCIAL_INSURANCE_NUMBER' | 'CREDIT_DEBIT_CARD_CVV' | 'CREDIT_DEBIT_CARD_EXPIRY' | 'CREDIT_DEBIT_CARD_NUMBER' | 'DRIVER_ID' | 'EMAIL' | 'INTERNATIONAL_BANK_ACCOUNT_NUMBER' | 'IP_ADDRESS' | 'LICENSE_PLATE' | 'MAC_ADDRESS' | 'NAME' | 'PASSWORD' | 'PHONE' | 'PIN' | 'SWIFT_CODE' | 'UK_NATIONAL_HEALTH_SERVICE_NUMBER' | 'UK_NATIONAL_INSURANCE_NUMBER' | 'UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER' | 'URL' | 'USERNAME' | 'US_BANK_ACCOUNT_NUMBER' | 'US_BANK_ROUTING_NUMBER' | 'US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER' | 'US_PASSPORT_NUMBER' | 'US_SOCIAL_SECURITY_NUMBER' | 'VEHICLE_IDENTIFICATION_NUMBER';
    action: GuardrailSensitiveInformationAction;
}[];
/**
 * A regular expression to match sensitive information.
 */
export type RegularExpression = {
    name: string;
    description?: string;
    pattern: string;
    action: GuardrailSensitiveInformationAction;
}[];
/**
 * The type of filter.
 */
export type Type = 'GROUNDING' | 'RELEVANCE';
/**
 * The threshold for the filter as a floating point value greater than 0.0 and less than 1.0.
 */
export type Threshold = number;
/**
 * Filter to evaluate grounding text.
 */
export type Filter1 = {
    type: Type;
    threshold: Threshold;
}[];
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "toolExecution".
 */
export type ToolExecutionJSON = ToolExecutionRemoteJSON | ToolExecutionGraphQLJSON;
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "toolQueryConfig".
 */
export type ToolQueryConfig = ToolQueryRefConfig | string;
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "allOfSchema".
 */
export type AllOfSchema = PropertySchema & {
    allOf: ObjectOrRefArray;
};
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "oneOfSchema".
 */
export type OneOfSchema = PropertySchema & {
    oneOf: ObjectOrRefArray;
};
/**
 * Options to be passed to the serialization routine.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterSerializeOptions".
 *
 * This interface was referenced by `undefined`'s JSON-Schema definition
 * via the `patternProperty` "^[^\n\r]*$".
 */
export type ParameterSerializeOptions = ParameterSerializeStyleOptions | ParameterSerializeContentOptions;
/**
 * An array of key / value or directive config tuples
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "directiveMappingArray".
 */
export type DirectiveMappingArray = DirectiveMappingArrayItem[];
/**
 * A resolver which references a specific service
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "serviceResolver".
 */
export type ServiceResolver = TakeshapeResolver | ShapedbResolverShapeNameNotRequired | ShapedbResolver | GraphqlResolver | RestResolver | AwsLambdaResolver;
/**
 * An array of key / value or directive config tuples
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "searchParamsMapping".
 */
export type SearchParamsMapping1 = DirectiveMappingArrayItem[];
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "shapeWithObjectSchema".
 */
export type ShapeWithObjectSchema = ShapeJSON & {
    schema: ObjectSchema;
};
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "serviceAuthentication".
 */
export type ServiceAuthentication = OAuth2Authentication | OAuth2BearerAuthentication | BearerAuthentication | BasicAuthentication | SearchParamsAuthentication | AWSAuthentication | GoogleAuthentication | CustomAuthentication;
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "anyServiceConfig".
 */
export type AnyServiceConfig = ServiceConfigJSON | ServiceConfig;
export interface ProjectSchemaJSON {
    $schema?: string;
    /**
     * The version of the TakeShape API your project is using. We increase the version as we make breaking changes to the API endpoints.
     */
    apiVersion: string;
    /**
     * The version of the schema format your project is using. We increase the version as we make breaking changes to the schema format.
     */
    schemaVersion: '3.67.0';
    /**
     * The ID of the TakeShape project this schema belongs to.
     */
    projectId: string;
    /**
     * The ID of the TakeShape user who created the schema.
     */
    author?: string;
    deactivated?: number;
    /**
     * The locale that should be preferred when creating new Shape items. This must be an entry in the locales array.
     */
    defaultLocale: string;
    locales: string[];
    queries: QueryMap;
    mutations: QueryMap;
    shapes: ShapeMap;
    forms?: FormMap;
    workflows: WorkflowMap;
    services?: ServiceMapJSON;
    agents?: AgentMap;
    guards?: GuardMap;
    tools?: ToolMap;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "queryMap".
 */
export interface QueryMap {
    [k: string]: QueryJSON;
}
/**
 * This interface was referenced by `QueryMap`'s JSON-Schema definition
 * via the `patternProperty` "^[0-9A-Za-z_]+$".
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "query".
 */
export interface QueryJSON {
    args?: Args;
    resolver: Resolver;
    shape: ReturnShape;
    /**
     * Provides more detail about what the query or mutation is for. This will be displayed in the automatically-generated GraphQL API docs.
     */
    description?: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "propertySchema".
 */
export interface PropertySchema {
    $ref?: string;
    title?: string;
    description?: string;
    default?: any;
    readOnly?: boolean;
    multipleOf?: number;
    maximum?: number;
    exclusiveMaximum?: number;
    minimum?: number;
    exclusiveMinimum?: number;
    maxLength?: NonNegativeInteger;
    minLength?: NonNegativeIntegerDefault0;
    pattern?: string;
    additionalItems?: PropertySchema;
    items?: PropertySchema;
    maxItems?: NonNegativeInteger;
    minItems?: NonNegativeIntegerDefault0;
    uniqueItems?: boolean;
    contains?: PropertySchema;
    maxProperties?: NonNegativeInteger;
    minProperties?: NonNegativeIntegerDefault0;
    required?: StringArray;
    additionalProperties?: PropertySchema | false;
    definitions?: {
        [k: string]: PropertySchema;
    };
    properties?: {
        [k: string]: PropertySchema;
    };
    const?: any;
    enum?: any[];
    type?: SimpleTypes | SimpleTypes[];
    format?: string;
    contentMediaType?: string;
    contentEncoding?: string;
    allOf?: SchemaArray;
    discriminator?: {
        propertyName?: string;
        [k: string]: any;
    };
    oneOf?: SchemaArray;
    extends?: ObjectOrRefArray;
    '@backreference'?: BackReference;
    '@input'?: PropertySchema;
    '@output'?: PropertySchema;
    '@syncLocaleStructure'?: boolean;
    '@sensitive'?: boolean;
    '@draftjs'?: boolean;
    '@l10n'?: boolean;
    '@key'?: string;
    '@workflow'?: string;
    '@mapping'?: FieldMapping;
    '@tag'?: string;
    '@tags'?: string[];
    '@deprecationReason'?: string;
    '@args'?: Args;
    '@resolver'?: Resolver;
    '@dependencies'?: Dependencies;
    '@ref'?: Ref;
    '@derivedFrom'?: string;
    '@indexed'?: Indexed;
    '@graphql'?: GraphQLConfig;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "refSchema".
 */
export interface RefSchema {
    '@ref': Ref;
    [k: string]: any;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "refSchemaLegacy".
 */
export interface RefSchemaLegacy {
    $ref: Ref;
    [k: string]: any;
}
/**
 * A configuration object for a reverse reference in a relationship.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "backreference".
 */
export interface BackReference {
    enabled: boolean;
    name?: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "utilResolver".
 */
export interface UtilResolver {
    if?: string;
    id?: string;
    name: UtilResolverName;
    options?: UtilResolverOptions;
    /**
     * Optional value to return from the noop resolver.
     */
    value?: number | string | boolean | {
        [k: string]: any;
    } | any[] | null;
    args?: ParameterConfigForJson;
    results?: ParameterConfigForJson;
    argsMapping?: ArgsMapping;
    resultsMapping?: ResultsMapping;
}
export interface UtilResolverOptions {
    [k: string]: any;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterConfigForJson".
 */
export interface ParameterConfigForJson {
    ops: ParameterOpList;
}
/**
 * An object describing an operation to generate a parameter, using a nested OpList.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterOpNested".
 */
export interface ParameterOpNested {
    /**
     * A path to the parameter for this operation.
     */
    path: string;
    /**
     * A mode for this parameter's operation.
     */
    op?: 'set' | 'concat' | 'extend' | 'remove';
    ops: ParameterOpList;
}
/**
 * An object describing an operation to generate a parameter using a value.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterOpValue".
 */
export interface ParameterOpValue {
    /**
     * A path to the parameter for this operation.
     */
    path: string;
    /**
     * A mode for this parameter's operation.
     */
    op?: 'set' | 'concat' | 'extend' | 'remove';
    /**
     * A value to set directly at this path.
     */
    value: number | string | boolean | {
        [k: string]: any;
    } | any[] | null;
}
/**
 * An object describing an operation to generate a parameter using a mapping.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterOpMapping".
 */
export interface ParameterOpMapping {
    /**
     * A path to the parameter for this operation.
     */
    path: string;
    /**
     * A mode for this parameter's operation.
     */
    op?: 'set' | 'concat' | 'extend' | 'remove';
    /**
     * Either a valid JSONPath or a directive pipeline to evaluate against the query context.
     */
    mapping: string | DirectiveConfig;
}
export interface DirectiveOptions {
    [k: string]: any;
}
/**
 * An object describing an operation to generate a parameter using a mapping.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterOpOp".
 */
export interface ParameterOpOp {
    /**
     * A path to the parameter for this operation.
     */
    path: string;
    /**
     * A mode for this parameter's operation.
     */
    op: 'set' | 'concat' | 'extend' | 'remove';
}
/**
 * An map of object keys / key paths to directive configs
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "directiveMappingMap".
 */
export interface DirectiveMappingMap {
    [k: string]: DirectiveConfig;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "delegateResolver".
 */
export interface DelegateResolver {
    if?: string;
    id?: string;
    name: DelegateResolverName;
    options?: DelegateResolverOptions;
    argsMapping?: ArgsMapping;
    resultsMapping?: ResultsMapping;
    /**
     * A ref to a query/mutation/property to delegate to.
     */
    to: string;
    args?: ParameterConfigForJson;
    results?: ParameterConfigForJson;
}
export interface DelegateResolverOptions {
    [k: string]: any;
}
/**
 * A resolver that automatically paginates through a GraphQL query and returns all items as a flat array.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "fetchAllResolver".
 */
export interface FetchAllResolver {
    if?: string;
    id?: string;
    name: FetchAllResolverName;
    options?: FetchAllResolverOptions;
    /**
     * The GraphQL query string to execute
     */
    query: string;
    /**
     * Path to the paginated field within the query response (e.g., 'variants'). All pagination paths are relative to this.
     */
    dataPath?: string;
    args?: ParameterConfigForJson;
    results?: ParameterConfigForJson;
    pagination?: PaginationConfig;
}
export interface FetchAllResolverOptions {
    /**
     * Maximum number of pages to fetch
     */
    maxPages?: number;
    /**
     * Number of items per page (overrides pagination config)
     */
    pageSize?: number;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "paginationCursorConfig".
 */
export interface PaginationCursorConfig {
    type: 'cursor';
    cursorArg: string;
    cursorPath: string;
    pageSize?: number;
    pageSizeArg: string;
    hasMorePath: string;
    itemsPath: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "paginationPageConfig".
 */
export interface PaginationPageConfig {
    type: 'page';
    pageArg: string;
    pageSize?: number;
    pageSizeArg?: string;
    itemsPath: string;
    pageTotalPath: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "paginationOffsetConfig".
 */
export interface PaginationOffsetConfig {
    type: 'offset';
    offsetArg: string;
    pageSize?: number;
    pageSizeArg?: string;
    itemsPath: string;
    itemTotalPath: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "takeshapeResolver".
 */
export interface TakeshapeResolver {
    if?: string;
    id?: string;
    name: TakeshapeResolverName;
    /**
     * Internal service identifier.
     */
    service: 'takeshape';
    options?: TakeshapeResolverOptions;
    /**
     * An optional Shape name for the resolver.
     */
    shapeName?: string;
    args?: ParameterConfigForJson;
    results?: ParameterConfigForJson;
    argsMapping?: ArgsMapping;
    resultsMapping?: ResultsMapping;
}
export interface TakeshapeResolverOptions {
    [k: string]: any;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "aiHybridSearchResolver".
 */
export interface AIHybridSearchResolver {
    if?: string;
    id?: string;
    name: AIHybridSearchResolverName;
    /**
     * A vector property ref to use for the query. The property must have an ai:createEmbedding resolver configured. The embedding service and model are derived from the property's resolver config.
     */
    vectorProperty: string;
    /**
     * Weight factor for keyword search results. Default: 0.5
     */
    keywordWeight?: number;
    /**
     * Weight factor for vector search results. Default: 0.5
     */
    vectorWeight?: number;
    /**
     * Number of nearest neighbors for vector search. Default: 3
     */
    vectorK?: number;
    args?: ParameterConfigForJson;
    results?: ParameterConfigForJson;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "shapedbResolver".
 */
export interface ShapedbResolver {
    if?: string;
    id?: string;
    name: ShapedbResolverName;
    /**
     * Internal service identifier.
     */
    service: 'shapedb';
    options?: ShapedbResolverOptions;
    argsMapping?: ArgsMapping;
    resultsMapping?: ResultsMapping;
    /**
     * A Shape name for the resolver to use.
     */
    shapeName: string;
    args?: ParameterConfigForJson;
    results?: ParameterConfigForJson;
}
export interface ShapedbResolverOptions {
    [k: string]: any;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "shapedbResolverShapeNameNotRequired".
 */
export interface ShapedbResolverShapeNameNotRequired {
    if?: string;
    id?: string;
    name: ShapedbResolverShapeNameNotRequiredName;
    /**
     * Internal service identifier.
     */
    service: 'shapedb';
    options?: ShapedbResolverShapeNameNotRequiredOptions;
    /**
     * An optional Shape name for the resolver.
     */
    shapeName?: string;
    args?: ParameterConfigForJson;
    results?: ParameterConfigForJson;
    argsMapping?: ArgsMapping;
    resultsMapping?: ResultsMapping;
}
export interface ShapedbResolverShapeNameNotRequiredOptions {
    [k: string]: any;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "graphqlResolver".
 */
export interface GraphqlResolver {
    if?: string;
    id?: string;
    name: GraphqlResolverName;
    /**
     * Configuration for a service to use with this resolver.
     */
    service: string;
    argsMapping?: ArgsMapping;
    resultsMapping?: ResultsMapping;
    options?: GraphqlResolverOptions;
    /**
     * A fieldname to use in queries.
     */
    fieldName: string;
    headers?: ParameterConfigForHeaders;
    searchParams?: ParameterConfigForSearchParams;
    args?: ParameterConfigForJson;
    results?: ParameterConfigForJson;
}
export interface GraphqlResolverOptions {
    selectionSet?: string;
    unboxParentSelectionSet?: boolean;
    ignoreErrors?: boolean;
    skipWhenMissingArgs?: boolean;
    ttl?: number;
    timeout?: number;
    allowStream?: boolean;
    retry?: number | {
        [k: string]: any;
    };
    [k: string]: any;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterConfigForHeaders".
 */
export interface ParameterConfigForHeaders {
    ops: ParameterOpList;
    serialize?: ParameterSerializeConfigForHeaders;
}
/**
 * Top-level paths to use headers serialization options for.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterSerializeConfigForHeaders".
 */
export interface ParameterSerializeConfigForHeaders {
    defaults?: ParameterSerializeStyleOptionsForHeaders | ParameterSerializeContentOptions;
    paths?: {
        /**
         * This interface was referenced by `undefined`'s JSON-Schema definition
         * via the `patternProperty` "^[^\n\r]*$".
         */
        [k: string]: ParameterSerializeStyleOptionsForHeaders | ParameterSerializeContentOptions;
    };
}
/**
 * Options to be passed to the serialization routine.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterSerializeStyleOptionsForHeaders".
 */
export interface ParameterSerializeStyleOptionsForHeaders {
    style: 'simple' | 'none';
    explode?: boolean;
}
/**
 * Options to be passed to the serialization routine.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterSerializeContentOptions".
 */
export interface ParameterSerializeContentOptions {
    contentType: string;
    /**
     * The allowReserved keyword specifies whether the reserved characters :/?#[]@!$&'()*+,;= in parameter values are allowed to be sent as they are.
     */
    allowReserved?: boolean;
    skipEncoding?: boolean;
    /**
     * Options to be passed directly to the content serializer library. Valid options depend upon your contentType.
     */
    options?: {
        [k: string]: any;
    };
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterConfigForSearchParams".
 */
export interface ParameterConfigForSearchParams {
    ops: ParameterOpList;
    serialize?: ParameterSerializeConfigForSearchParams;
}
/**
 * Top-level paths to use search params serialization options for.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterSerializeConfigForSearchParams".
 */
export interface ParameterSerializeConfigForSearchParams {
    defaults?: ParameterSerializeStyleOptionsForSearchParams | ParameterSerializeContentOptions;
    paths?: {
        /**
         * This interface was referenced by `undefined`'s JSON-Schema definition
         * via the `patternProperty` "^[^\n\r]*$".
         */
        [k: string]: ParameterSerializeStyleOptionsForSearchParams | ParameterSerializeContentOptions;
    };
}
/**
 * Options to be passed to the serialization routine.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterSerializeStyleOptionsForSearchParams".
 */
export interface ParameterSerializeStyleOptionsForSearchParams {
    style: 'form' | 'spaceDelimited' | 'pipeDelimited' | 'deepObject' | 'none';
    explode?: boolean;
    allowEmptyValue?: boolean;
    /**
     * The allowReserved keyword specifies whether the reserved characters :/?#[]@!$&'()*+,;= in parameter values are allowed to be sent as they are.
     */
    allowReserved?: boolean;
    skipEncoding?: boolean;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "restResolver".
 */
export interface RestResolver {
    if?: string;
    id?: string;
    name: RestResolverName;
    /**
     * Configuration for a service to use with this resolver.
     */
    service: string;
    argsMapping?: ArgsMapping;
    searchParamsMapping?: SearchParamsMapping;
    resultsMapping?: ResultsMapping;
    options?: RestResolverOptions;
    body?: ParameterConfigForBody;
    form?: ParameterConfigForSearchParams;
    headers?: ParameterConfigForHeaders;
    json?: ParameterConfigForJson;
    /**
     * Mapping and serialization configuration for the path, or a simple string.
     */
    path: ParameterConfigForPathParams | string;
    searchParams?: ParameterConfigForSearchParams;
    args?: ParameterConfigForJson;
    results?: ParameterConfigForJson;
}
export interface RestResolverOptions {
    trailingSlash?: boolean;
    allowStream?: boolean;
    ttl?: number;
    timeout?: number;
    retry?: number | {
        [k: string]: any;
    };
    [k: string]: any;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterConfigForBody".
 */
export interface ParameterConfigForBody {
    ops: ParameterOpList;
    serialize?: ParameterSerializeConfigForBody;
}
/**
 * Top-level paths to use serialization options for.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterSerializeConfigForBody".
 */
export interface ParameterSerializeConfigForBody {
    content?: ParameterSerializeContentOptions;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterConfigForPathParams".
 */
export interface ParameterConfigForPathParams {
    ops: ParameterOpList;
    serialize: ParameterSerializeConfigForPathParams;
}
/**
 * Top-level paths to use path params serialization options for.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterSerializeConfigForPathParams".
 */
export interface ParameterSerializeConfigForPathParams {
    /**
     * For generating the path using tokens frpm the ParameterOps, e.g., '/products/{productId}'
     */
    template: string;
    defaults?: ParameterSerializeStyleOptionsForPathParams | ParameterSerializeContentOptions;
    paths?: {
        /**
         * This interface was referenced by `undefined`'s JSON-Schema definition
         * via the `patternProperty` "^[^\n\r]*$".
         */
        [k: string]: ParameterSerializeStyleOptionsForPathParams | ParameterSerializeContentOptions;
    };
}
/**
 * Options to be passed to the serialization routine.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterSerializeStyleOptionsForPathParams".
 */
export interface ParameterSerializeStyleOptionsForPathParams {
    style: 'simple' | 'label' | 'matrix' | 'none';
    explode?: boolean;
    allowEmptyValue?: boolean;
    /**
     * The allowReserved keyword specifies whether the reserved characters :/?#[]@!$&'()*+,;= in parameter values are allowed to be sent as they are.
     */
    allowReserved?: boolean;
    skipEncoding?: boolean;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "awsLambdaResolver".
 */
export interface AwsLambdaResolver {
    if?: string;
    id?: string;
    name: AwsLambdaResolverName;
    /**
     * Configuration for a service to use with this resolver.
     */
    service: string;
    options?: AwsLambdaResolverOptions;
    payload?: ParameterConfigForJson;
    /**
     * Mapping configuration for the FunctionName.
     */
    functionName: string | ParameterConfigForAwsLambda;
    clientContext?: ParameterConfigForJson;
    args?: ParameterConfigForJson;
    results?: ParameterConfigForJson;
    argsMapping?: ArgsMapping;
    searchParamsMapping?: SearchParamsMapping;
    resultsMapping?: ResultsMapping;
}
export interface AwsLambdaResolverOptions {
    [k: string]: any;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterConfigForAwsLambda".
 */
export interface ParameterConfigForAwsLambda {
    ops: ParameterOpList;
    serialize: ParameterSerializeConfigForPathParams;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "salsifyResolver".
 */
export interface SalsifyResolver {
    if?: string;
    id?: string;
    name: SalsifyResolverName;
    /**
     * Configuration for a service to use with this resolver.
     */
    service: string;
    options?: SalsifyResolverOptions;
    args?: ParameterConfigForJson;
    results?: ParameterConfigForJson;
    argsMapping?: ArgsMapping;
    resultsMapping?: ResultsMapping;
}
export interface SalsifyResolverOptions {
    [k: string]: any;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "syndigoResolver".
 */
export interface SyndigoResolver {
    if?: string;
    id?: string;
    name: SyndigoResolverName;
    /**
     * Configuration for a service to use with this resolver.
     */
    service: string;
    options?: SyndigoResolverOptions;
    args?: ParameterConfigForJson;
    results?: ParameterConfigForJson;
    argsMapping?: ArgsMapping;
    resultsMapping?: ResultsMapping;
}
export interface SyndigoResolverOptions {
    [k: string]: any;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "functionResolver".
 */
export interface FunctionResolver {
    if?: string;
    id?: string;
    name: FunctionResolverName;
    options?: FunctionResolverOptions;
    args?: ParameterConfigForJson;
    results?: ParameterConfigForJson;
    argsMapping?: ArgsMapping;
    resultsMapping?: ResultsMapping;
    javascript?: FunctionResolverJavascript;
}
export interface FunctionResolverOptions {
    [k: string]: any;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "aiGenerateTextResolver".
 */
export interface AIGenerateTextResolver {
    if?: string;
    id?: string;
    name: AIResolverName;
    /**
     * Configuration for a service to use with this resolver.
     */
    service: string;
    options?: AIGenerateTextResolverOptions;
    systemPrompt: string;
    inputTemplate?: string;
    model: string;
    tools?: AgentToolConfig[];
    guardrails?: AIGuardrail[];
    context?: ParameterConfigForJson;
    results?: ParameterConfigForJson;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "aiGenerateTextResolverOptions".
 */
export interface AIGenerateTextResolverOptions {
    history?: History;
    maxTokens?: MaximumTokens;
    temperature?: Temperature;
    topP?: TopP;
    topK?: TopK;
    presencePenalty?: PresencePenaltySetting;
    frequencyPenalty?: FrequencyPenaltySetting;
    stopSequences?: StopSequences;
    seed?: Seed;
    /**
     * Maximum number of retries. Set to 0 to disable retries. Defaults to 2
     */
    maxRetries?: number;
    /**
     * The tool choice strategy. Default: 'auto'
     */
    toolChoice?: (('auto' | 'none' | 'required') | string) & string;
    /**
     * Maximal number of automatic roundtrips for tool calls.
     */
    maxToolRoundtrips?: number;
    promptCaching?: PromptCaching;
    [k: string]: any;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentToolConfig".
 */
export interface AgentToolConfig {
    tool: string;
    alias?: string;
    description?: string;
    argBindings?: AgentToolConfigArg[];
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentToolConfigArgAgent".
 */
export interface AgentControlled {
    type: 'agent';
    argName: ToolArgumentName;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentToolConfigArgVariable".
 */
export interface VariableValue {
    type: 'variable';
    argName: ToolArgumentName1;
    variableName: StateVariableName;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "aiSimilarityGuardrail".
 */
export interface AISimilarityGuardrail {
    name: 'similarity';
    shape: string;
    defaultResponse: string;
    threshold?: number;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "aiGeneratePropertyResolver".
 */
export interface AIGeneratePropertyResolver {
    id?: string;
    name: AIResolverName1;
    /**
     * Configuration for a service to use with this resolver.
     */
    service: string;
    model: string;
    systemPrompt?: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "aiEmbeddingResolver".
 */
export interface AIEmbeddingResolver {
    if?: string;
    id?: string;
    name: AIResolverName2;
    /**
     * Configuration for a service to use with this resolver.
     */
    service: string;
    options?: AIEmbeddingResolverOptions;
    model: string;
    args?: ParameterConfigForJson;
    results?: ParameterConfigForJson;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "aiEmbeddingResolverOptions".
 */
export interface AIEmbeddingResolverOptions {
    useDependencies?: boolean;
    [k: string]: any;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "aiEmbeddingSearchResolver".
 */
export interface AIEmbeddingSearchResolver {
    if?: string;
    id?: string;
    name: AIResolverName3;
    /**
     * A vector property ref to use for the query.
     */
    vectorProperty: string;
    args?: ParameterConfigForJson;
    results?: ParameterConfigForJson;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "aiParseFileResolver".
 */
export interface AIParseFileResolver {
    if?: string;
    id?: string;
    name: AIResolverName4;
    /**
     * Configuration for a service to use with this resolver.
     */
    service: string;
    options?: AIEmbeddingResolverOptions;
    args?: ParameterConfigForJson;
    results?: ParameterConfigForJson;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "utilChunkResolver".
 */
export interface ChunkResolver {
    if?: string;
    id?: string;
    name: UtilResolverName1;
    options: UtilChunkResolverOptions;
    args?: ParameterConfigForJson;
    results?: ParameterConfigForJson;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "utilChunkResolverOptionsCharacterCount".
 */
export interface UtilChunkResolverOptionsCharacterCount {
    type: 'characterCount';
    characterCount: number;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "utilChunkResolverOptionsSeparators".
 */
export interface UtilChunkResolverOptionsSeparators {
    type: 'separators';
    separators: string[];
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "utilChunkResolverOptionsMarkdown".
 */
export interface UtilChunkResolverOptionsMarkdown {
    type: 'markdown';
    /**
     * New chunks will be created at headers for this level or lower. Default 2.
     */
    headerLevel?: number;
    /**
     * A new chunk will be started when this number of characters is reached, regardless of markup.
     */
    maxCharacters?: number;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "utilChunkResolverOptionsSemantic".
 */
export interface UtilChunkResolverOptionsSemantic {
    type: 'semantic';
    serviceId: string;
    modelId: string;
    /**
     * Similarity below which two embeddings are considered different.
     */
    similarityThreshold?: number;
    /**
     * Advanced. How many sentences to advance when grouping sentences to create embeddings. Default 1.
     */
    stride?: number;
    /**
     * Advanced. How many sentences are grouped together to create embeddings. Default 3.
     */
    sentenceCount?: number;
    /**
     * The maximum number of characters in a chunk.
     */
    maxCharacters?: number;
    /**
     * The maximum number of tokens in a chunk.
     */
    maxTokens?: number;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "aiRunAgentResolver".
 */
export interface AISendAgentMessageResolver {
    id?: string;
    name: AIResolverName5;
    agentName: string;
    inputName: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "aiInspectAgentResolver".
 */
export interface AIInspectAgentResolver {
    id?: string;
    name: AIResolverName6;
    agentName: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "aiCreateAgentSessionResolver".
 */
export interface AICreateAgentSessionResolver {
    id?: string;
    name: AIResolverName7;
    agentName: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "aiGetAgentMessageResolver".
 */
export interface AIGetAgentMessageResolver {
    id?: string;
    name: AIResolverName8;
    agentName: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "aiAbortAgentMessageResolver".
 */
export interface AIAbortAgentMessageResolver {
    id?: string;
    name: AIResolverName9;
    agentName: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "aiSendAgentFeedbackResolver".
 */
export interface AISendAgentFeedbackResolver {
    id?: string;
    name: AIResolverName10;
    agentName: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "composeResolver".
 */
export interface ComposeResolver {
    compose: BasicResolver[];
    resultsMapping?: DirectiveMappingMap | DirectiveConfig;
    results?: ParameterConfigForJson;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "indexed".
 */
export interface Indexed {
    nested?: boolean;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "graphql".
 */
export interface GraphQLConfig {
    json?: boolean;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "shapeMap".
 */
export interface ShapeMap {
    [k: string]: ShapeJSON;
}
/**
 * A Shape is a schema object for structuring and storing data from one or more sources, including the TakeShape data store and connected services
 *
 * This interface was referenced by `ShapeMap`'s JSON-Schema definition
 * via the `patternProperty` "^[0-9A-Za-z_]+$".
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "shape".
 */
export interface ShapeJSON {
    /**
     * The Pascal-cased human-readable id for a Shape. This value should match the shape's key in the shapes object. This value is used in @ref and @mapping annotations
     */
    name: string;
    /**
     * The machine-readable id for a Shape which should never change. When using TakeShape's built-in database to store Shape data, this value is used  database as a stable "table name" and changing it will result in orphaning that data.
     */
    id: string;
    /**
     * The human-readable name for a Shape for use in a UI.
     */
    title: string;
    description?: string;
    type?: 'interface' | 'input' | 'output';
    interfaces?: string[];
    /**
     * Specifying a model type allows Shape data to be stored in TakeShape's built-in database
     */
    model?: {
        type: ModelType;
    };
    workflow?: string;
    loaders?: ShapeLoaders;
    joins?: ShapeJoins;
    cache?: ShapeCacheConfig;
    context?: ShapeContext;
    schema: ShapeSchema;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "shapeLoaders".
 */
export interface ShapeLoaders {
    list: StoredListQueryLoaderConfig | StoredListQueryLoaderConfig[];
    get?: GetQueryLoaderConfig;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "storedListQueryLoaderConfig".
 */
export interface StoredListQueryLoaderConfig {
    query: string;
    args?: {
        [k: string]: any;
    } | {
        [k: string]: any;
    }[];
    pagination?: PaginationConfig;
    /**
     * When set to a number greater than 0, pages will be fetched in parallel with this concurrency limit during indexing.
     */
    concurrency?: number;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "getQueryLoaderConfig".
 */
export interface GetQueryLoaderConfig {
    query: string;
    args?: {
        [k: string]: any;
    };
    idArg?: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "shapeJoins".
 */
export interface ShapeJoins {
    [k: string]: ShapeJoin;
}
/**
 * This interface was referenced by `ShapeJoins`'s JSON-Schema definition
 * via the `patternProperty` "[:0-9A-Za-z_-]+".
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "shapeJoin".
 */
export interface ShapeJoin {
    resolver: DelegateResolver | ShapedbResolver;
    dependencies?: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "shapeCacheConfig".
 */
export interface ShapeCacheConfig {
    enabled: boolean;
    idField?: string;
    searchSummaryField?: string;
    fragment?: CachedFragmentConfig;
    triggers?: CacheTriggerConfig[];
    /**
     * Number of seconds this Shape should be cached. Default 0.
     */
    maxAge?: number;
    /**
     * Requests after maxAge will send a request to origin to revalidate while serving stale content for this duration in the meantime.
     */
    staleWhileRevalidate?: number;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "cachedFragmentConfig".
 */
export interface CachedFragmentConfig {
    ignoreFields?: string[];
    maxDepth?: number;
    selectionSet?: string;
    includeDeprecated?: boolean;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "cacheScheduleTriggerConfig".
 */
export interface CacheScheduleTriggerConfig {
    type: 'schedule';
    loader: 'get' | 'list';
    interval: number;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "cacheWebhookTriggerConfig".
 */
export interface CacheWebhookTriggerConfig {
    type: 'webhook';
    loader: 'get' | 'list';
    service: string;
    events: string[];
}
/**
 * Context configuration for storing variables that can be accessed by descendant resolvers
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "shapeContext".
 */
export interface ShapeContext {
    /**
     * Variables to store in context when resolving fields on this shape. Keys are variable names, values are paths to property values.
     */
    variables?: {
        [k: string]: string;
    };
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "shapeSchemaAllOf".
 */
export interface ShapeSchemaAllOf {
    allOf: ObjectOrRefArray;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "shapeSchemaExtends".
 */
export interface ShapeSchemaExtends {
    extends: ObjectOrRefArray;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "shapeSchemaOneOf".
 */
export interface ShapeSchemaOneOf {
    title?: string;
    description?: string;
    discriminator?: {
        propertyName: string;
        [k: string]: any;
    };
    oneOf: ObjectOrRefArray;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "shapeSchemaEnum".
 */
export interface ShapeSchemaEnum {
    enum: any[];
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "shapeSchemaAny".
 */
export interface ShapeSchemaAny {
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "formMap".
 */
export interface FormMap {
    [k: string]: FormsConfig;
}
/**
 * This interface was referenced by `FormMap`'s JSON-Schema definition
 * via the `patternProperty` "[0-9A-Za-z_-]+".
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "formsConfig".
 */
export interface FormsConfig {
    default: FormConfig;
    [k: string]: FormConfig;
}
/**
 * This interface was referenced by `FormsConfig`'s JSON-Schema definition
 * via the `patternProperty` "[0-9A-Za-z_-]+".
 *
 * This interface was referenced by `undefined`'s JSON-Schema definition
 * via the `patternProperty` "[0-9A-Za-z_-]+".
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "formConfig".
 */
export interface FormConfig {
    [k: string]: any;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "workflowMap".
 */
export interface WorkflowMap {
    [k: string]: Workflow;
}
/**
 * This interface was referenced by `WorkflowMap`'s JSON-Schema definition
 * via the `patternProperty` "[0-9A-Za-z_-]+".
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "workflow".
 */
export interface Workflow {
    /**
     * machine-readable id
     */
    name: string;
    title: WorkflowName;
    steps: Steps;
    [k: string]: any;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "workflowStep".
 */
export interface WorkflowStep {
    name: Name;
    title: Title;
    description?: Description;
    color: Color;
    live: Live;
    key: Key;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "storedServiceMap".
 */
export interface ServiceMapJSON {
    [k: string]: ServiceConfigJSON;
}
/**
 * This interface was referenced by `ServiceMapJSON`'s JSON-Schema definition
 * via the `patternProperty` "[0-9A-Za-z_-]+".
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "storedServiceConfig".
 */
export interface ServiceConfigJSON {
    /**
     * Machine-readable identifier, should typically be the same as the property name on the services object.
     */
    id: string;
    /**
     * Human-readable name for this service.
     */
    title: string;
    /**
     * The service provider id.
     */
    provider: string;
    /**
     * A namespace to use for the imported types tied to this service.
     */
    namespace?: string;
    serviceType: ServiceType;
    authenticationType: 'oauth2' | 'basic' | 'bearer' | 'searchParams' | 'oauth2Bearer' | 'custom' | 'aws' | 'google' | 'none' | 'unknown';
    authentication?: string;
    healthCheck?: ServiceHealthCheck;
    webhookId?: string;
    /**
     * Configuration options passed to and handled by the provider.
     */
    options?: {
        [k: string]: any;
    };
}
/**
 * Configuration for ping health checks.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "serviceHealthCheck".
 */
export interface ServiceHealthCheck {
    checkName: CheckName;
    endpoint?: Endpoint;
    requestMethod?: RequestMethod;
    requestHeaders?: RequestHeaders;
    requestSearchParams?: RequestSearchParams;
    requestBody?: RequestBody;
    requestBodyFormat?: RequestBodyFormat;
    requestTimeout?: RequestTimeout;
    healthyResponseStatusCode?: HealthyResponseStatusCode;
    triggers?: ServiceHealthCheckTrigger[];
}
/**
 * Any custom headers to set with the health check request.
 */
export interface RequestHeaders {
    [k: string]: any;
}
/**
 * Any custom search params to set with the health check request.
 */
export interface RequestSearchParams {
    [k: string]: any;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentMap".
 */
export interface AgentMap {
    [k: string]: AgentJSON;
}
/**
 * An Agent is a configuration for an AI service such as a chat bot or a search engine.
 *
 * This interface was referenced by `AgentMap`'s JSON-Schema definition
 * via the `patternProperty` "^[0-9A-Za-z_]+$".
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agent".
 */
export interface AgentJSON {
    title?: string;
    description?: string;
    disabled?: boolean;
    systemPrompt?: string;
    api: AgentAPI;
    memory?: AgentMemory;
    start: AgentStart;
    states: AgentStates;
    guards?: AgentGuard[];
    historyStrategies?: HistoryStrategyMap;
    protection?: AgentProtection;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentApi".
 */
export interface AgentAPI {
    inputs: AgentAPIInput[];
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentApiMutationInput".
 */
export interface AgentAPIMutationInput {
    type: 'mutation';
    name: string;
    args: string;
    interactionTimeout?: InteractionTimeoutMilliseconds;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentMemory".
 */
export interface AgentMemory {
    sessionMemory: AgentSessionMemory;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentSessionMemory".
 */
export interface AgentSessionMemory {
    shape?: string;
}
/**
 * Configuration for the start of an agent's execution
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentStart".
 */
export interface AgentStart {
    transitions: AgentTransitionSuspend[];
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentTransitionSuspend".
 */
export interface AgentTransitionSuspend {
    type: 'suspend';
    destination: string;
    input: string;
    condition?: string;
    limit?: number;
    sessionMemory?: AgentStateSessionMemory;
    historyStrategy?: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentStateSessionMemoryAssignment".
 */
export interface AgentStateSessionMemoryAssignment {
    memoryPath?: string;
    expression: string;
}
/**
 * States that are traversed during the execution of an agent.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentStateMap".
 */
export interface AgentStates {
    [k: string]: AgentState;
}
/**
 * One step of an agent's execution.
 *
 * This interface was referenced by `AgentStates`'s JSON-Schema definition
 * via the `patternProperty` "^[0-9A-Za-z_]+$".
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentState".
 */
export interface AgentState {
    name: string;
    variables?: Variables;
    execution: AgentExecution;
    transitions?: AgentTransition[];
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentVariable".
 */
export interface AgentVariable {
    name: string;
    /**
     * These are evaluated in order until a value is found.
     */
    steps: AgentVariableStep[];
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentVariableStep".
 */
export interface AgentVariableStep {
    condition?: string;
    expression: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentExecutionGraphql".
 */
export interface AgentExecutionGraphQL {
    type: 'graphql';
    query: string;
    path?: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentExecutionGenerate".
 */
export interface AgentExecutionGenerate {
    type: 'generate';
    service: string;
    model: string;
    systemPrompt?: string;
    input: AgentAIStateInput;
    attachments?: AgentAIStateAttachments;
    outputShape?: string;
    tools?: AgentToolConfig[];
    memoryTools?: MemoryToolJSON[];
    clientTools?: ClientToolJSON[];
    options?: AgentGenerateOptions;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentAiStateInputArg".
 */
export interface AgentAIStateInputArgument {
    type: 'arg';
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentAiStateInputTemplate".
 */
export interface AgentAIStateInputTemplate {
    type: 'template';
    inputTemplate: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentAiStateAttachmentsNone".
 */
export interface AgentAIStateAttachmentsNone {
    type: 'none';
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentAiStateAttachmentsArg".
 */
export interface AgentAIStateAttachmentsArg {
    type: 'arg';
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentAiStateAttachmentsExpression".
 */
export interface AgentAIStateAttachmentsExpression {
    type: 'expression';
    expression: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "memoryTool".
 */
export interface MemoryToolJSON {
    name: string;
    description?: string;
    args?: string;
    operation: 'set' | 'merge' | 'add' | 'clear' | 'get' | 'search' | 'remove' | 'update' | 'concat';
    path?: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "clientTool".
 */
export interface ClientToolJSON {
    name: string;
    description?: string;
    parameters?: string;
    /**
     * noop = fire-and-forget yield = waits for client response
     */
    type: 'noop' | 'yield';
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentGenerateOptions".
 */
export interface AgentGenerateOptions {
    history?: History1;
    maxTokens?: MaximumTokens1;
    temperature?: Temperature1;
    topP?: TopP1;
    topK?: TopK1;
    presencePenalty?: PresencePenaltySetting1;
    frequencyPenalty?: FrequencyPenaltySetting1;
    stopSequences?: StopSequences1;
    seed?: Seed1;
    /**
     * Maximum number of retries. Set to 0 to disable retries. Defaults to 2
     */
    maxRetries?: number;
    /**
     * The tool choice strategy. Default: 'auto'
     */
    toolChoice?: (('auto' | 'none' | 'required') | string) & string;
    maxToolRoundtrips?: MaxToolRoundtrips;
    promptCaching?: PromptCaching1;
    structuredOutputs?: StructuredOutputs;
    enableOpenAIFormat?: EnableOpenAISchemaFormat;
    removePropertyKeyPatterns?: RemovePropertyKeyPatterns;
    stripMarkdown?: StripMarkdown;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentExecutionChat".
 */
export interface AgentExecutionChat {
    type: 'chat';
    service: string;
    model: string;
    systemPrompt?: string;
    input: AgentAIStateInput;
    attachments?: AgentAIStateAttachments;
    artifact?: string;
    tools?: AgentToolConfig[];
    memoryTools?: MemoryToolJSON[];
    clientTools?: ClientToolJSON[];
    options?: AgentGenerateOptions;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentTransitionImmediate".
 */
export interface AgentTransitionImmediate {
    type: 'immediate';
    destination: string;
    condition?: string;
    limit?: number;
    sessionMemory?: AgentStateSessionMemory1;
    historyStrategy?: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentGuard".
 */
export interface AgentGuard {
    guardId: GuardID;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "historyStrategyMap".
 */
export interface HistoryStrategyMap {
    [k: string]: HistoryStrategy;
}
/**
 * This interface was referenced by `HistoryStrategyMap`'s JSON-Schema definition
 * via the `patternProperty` "^[0-9A-Za-z_]+$".
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "historyStrategy".
 */
export interface HistoryStrategy {
    name: string;
    variables?: Variables1;
    filter?: HistoryStrategyFilter;
    transform: HistoryStrategyTransform;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "historyStrategyFilter".
 */
export interface HistoryStrategyFilter {
    toolCalls?: 'retain' | 'clear';
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "historyStrategyTransformNone".
 */
export interface HistoryStrategyTransformNone {
    type: 'none';
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "historyStrategyTransformReplace".
 */
export interface HistoryStrategyTransformReplace {
    type: 'replace';
    template: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "historyStrategyTransformSummarize".
 */
export interface HistoryStrategyTransformSummarize {
    type: 'generate';
    service: string;
    model: string;
    systemPrompt: string;
    tools?: AgentToolConfig[];
    options?: AgentGenerateOptions;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "agentProtection".
 */
export interface AgentProtection {
    enabled: EnableAgentAbuseProtection;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "guardMap".
 */
export interface GuardMap {
    [k: string]: GuardJSON;
}
/**
 * A Guard is a configuration for an AI guardrail that can check inputs and outputs and provide safety and compliance.
 *
 * This interface was referenced by `GuardMap`'s JSON-Schema definition
 * via the `patternProperty` "^[0-9A-Za-z_]+$".
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "guard".
 */
export interface GuardJSON {
    name: Name1;
    description?: Description1;
    enabled?: Enabled;
    guardrailIdentifier?: GuardrailIdentifier;
    guardrailVersion?: GuardrailVersion;
    blockedInputMessaging?: BlockedInputMessaging;
    blockedOutputsMessaging?: BlockedOutputsMessaging;
    topicPolicyConfig?: TopicPolicy;
    contentPolicyConfig?: ContentPolicy;
    wordPolicyConfig?: WordPolicy;
    sensitiveInformationPolicyConfig?: SensitiveInformationPolicy;
    contextualGroundingPolicyConfig?: ContextualGroundingPolicy;
}
/**
 * Topics to identify and block.
 */
export interface TopicPolicy {
    topicsConfig: Topic;
}
/**
 * Types of content to filter and strength configuration.
 */
export interface ContentPolicy {
    filtersConfig: Filter;
}
/**
 * Specific words to identify and block.
 */
export interface WordPolicy {
    wordsConfig?: WordList;
    managedWordListsConfig?: ManagedWordList;
}
/**
 * Filter out and block or obscure sensitive information. Matching text will be handled per the policy.
 */
export interface SensitiveInformationPolicy {
    piiEntitiesConfig?: PIIEntity;
    regexesConfig?: RegularExpression;
}
/**
 * Provides evaluations based on grounding text supplied by your in-context agent variables. Off-topic conversations can then be blocked.
 */
export interface ContextualGroundingPolicy {
    filtersConfig: Filter1;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "toolMap".
 */
export interface ToolMap {
    [k: string]: ToolJSON;
}
/**
 * This interface was referenced by `ToolMap`'s JSON-Schema definition
 * via the `patternProperty` "^[0-9A-Za-z_]+$".
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "tool".
 */
export interface ToolJSON {
    visibility?: 'public' | 'private';
    execution: ToolExecutionJSON;
    description?: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "toolExecutionRemote".
 */
export interface ToolExecutionRemoteJSON {
    type: 'remote';
    toolName: string;
    service: string;
    parameters?: ObjectSchema;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "toolExecutionGraphQL".
 */
export interface ToolExecutionGraphQLJSON {
    type: 'graphql';
    query: ToolQueryConfig;
    path?: string;
    optimizeResponse?: ToolExecutionGraphQLOptimizeResponseJSON;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "toolQueryRefConfig".
 */
export interface ToolQueryRefConfig {
    ref: string;
    selectionSet?: string;
    args?: string[];
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "toolExecutionGraphQLOptimizeResponse".
 */
export interface ToolExecutionGraphQLOptimizeResponseJSON {
    compactPagination?: boolean;
}
/**
 * All possible options for the more specific ParameterSerializeStyleOptions types.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterSerializeStyleOptions".
 */
export interface ParameterSerializeStyleOptions {
    style: 'simple' | 'label' | 'matrix' | 'form' | 'spaceDelimited' | 'pipeDelimited' | 'deepObject' | 'none';
    explode?: boolean;
    allowEmptyValue?: boolean;
    /**
     * The allowReserved keyword specifies whether the reserved characters :/?#[]@!$&'()*+,;= in parameter values are allowed to be sent as they are.
     */
    allowReserved?: boolean;
    skipEncoding?: boolean;
}
/**
 * All possible options for the more specific ParameterSerializeConfig types.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterSerializeConfig".
 */
export interface ParameterSerializeConfig {
    content?: ParameterSerializeContentOptions;
    defaults?: ParameterSerializeOptions;
    paths?: {
        [k: string]: ParameterSerializeOptions;
    };
}
/**
 * All possible options for the more specific ParameterConfig types.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "parameterConfig".
 */
export interface ParameterConfig {
    ops: ParameterOpList;
    serialize?: ParameterSerializeConfig;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "aiParseFileResolverOptions".
 */
export interface AIParseFileResolverOptions {
    [k: string]: any;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "listQueryLoaderConfig".
 */
export interface ListQueryLoaderConfig {
    query: string;
    args?: {
        [k: string]: any;
    };
    pagination?: PaginationConfig;
    /**
     * When set to a number greater than 0, pages will be fetched in parallel with this concurrency limit during indexing.
     */
    concurrency?: number;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "formScalarConfig".
 */
export interface FormScalarConfig {
    widget: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "formObjectConfig".
 */
export interface FormObjectConfig {
    widget?: string;
    order?: string[];
    properties?: {
        [k: string]: FormConfig;
    };
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "formArrayConfig".
 */
export interface FormArrayConfig {
    widget: string;
    items: FormConfig;
}
/**
 * For use with a custom auth handler on a service provider.
 *
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "customAuthentication".
 */
export interface CustomAuthentication {
    type: 'custom';
    [k: string]: any;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "searchParamsAuthentication".
 */
export interface SearchParamsAuthentication {
    type: 'searchParams';
    params: {
        name: string;
        value: string;
    }[];
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "bearerAuthentication".
 */
export interface BearerAuthentication {
    type: 'bearer';
    token: string;
    prefix?: string;
    header?: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "oauth2BearerAuthentication".
 */
export interface OAuth2BearerAuthentication {
    type: 'oauth2Bearer';
    token: string;
    prefix?: string;
    header?: string;
    scope?: string;
    expiresAt?: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "basicAuthentication".
 */
export interface BasicAuthentication {
    type: 'basic';
    username: string;
    password: string;
    useIso8859?: boolean;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "oauth2Authentication".
 */
export interface OAuth2Authentication {
    type: 'oauth2';
    grantType: 'authorizationCode' | 'clientCredentials';
    authorizationUrl?: string;
    accessTokenUrl?: string;
    clientId: string;
    clientSecret?: string;
    scope?: string;
    usePkce?: boolean;
    redirectUrl?: string;
    headerPrefix?: string;
    audience?: string;
    resource?: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "awsAuthentication".
 */
export interface AWSAuthentication {
    type: 'aws';
    awsAccessKeyId: string;
    awsSecretAccessKey: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "googleAuthentication".
 */
export interface GoogleAuthentication {
    type: 'google';
    clientEmail: string;
    privateKey: string;
}
/**
 * This interface was referenced by `ProjectSchemaJSON`'s JSON-Schema
 * via the `definition` "serviceConfig".
 */
export interface ServiceConfig {
    /**
     * Machine-readable identifier, should typically be the same as the property name on the services object.
     */
    id: string;
    /**
     * Human-readable name for this service.
     */
    title: string;
    /**
     * The service provider id.
     */
    provider: string;
    /**
     * A namespace to use for the imported types tied to this service.
     */
    namespace?: string;
    serviceType: ServiceType;
    authenticationType: 'oauth2' | 'basic' | 'bearer' | 'searchParams' | 'oauth2Bearer' | 'custom' | 'aws' | 'google' | 'none' | 'unknown';
    authentication?: ServiceAuthentication;
    healthCheck?: ServiceHealthCheck;
    webhookId?: string;
    /**
     * Configuration options passed to and handled by the provider.
     */
    options?: {
        [k: string]: any;
    };
}
