import { ApiConfig } from "../types/index.js"; export declare const configSchema: { readonly $schema: "http://json-schema.org/draft-07/schema#"; readonly type: "object"; readonly required: readonly ["resources"]; readonly properties: { readonly resources: { readonly type: "array"; readonly items: { readonly type: "object"; readonly required: readonly ["name", "fields"]; readonly properties: { readonly name: { readonly type: "string"; readonly description: "Name of the resource (plural form recommended)"; }; readonly primaryKey: { readonly type: "string"; readonly description: "Name of the primary key field (defaults to 'id')"; }; readonly fields: { readonly type: "array"; readonly items: { readonly type: "object"; readonly required: readonly ["name", "type"]; readonly properties: { readonly name: { readonly type: "string"; readonly description: "Field name in camelCase"; }; readonly type: { readonly type: "string"; readonly enum: readonly ["string", "number", "boolean", "object", "array", "date"]; readonly description: "Field data type"; }; readonly required: { readonly type: "boolean"; readonly description: "Whether the field is required"; }; readonly defaultValue: { readonly description: "Default value for the field"; }; readonly description: { readonly type: "string"; readonly description: "Description of the field"; }; }; }; }; readonly relationships: { readonly type: "array"; readonly items: { readonly type: "object"; readonly required: readonly ["type", "resource", "foreignKey"]; readonly properties: { readonly type: { readonly type: "string"; readonly enum: readonly ["belongsTo", "hasOne", "hasMany", "manyToMany"]; readonly description: "Type of relationship"; }; readonly resource: { readonly type: "string"; readonly description: "Name of the related resource"; }; readonly foreignKey: { readonly type: "string"; readonly description: "Foreign key field name"; }; readonly targetKey: { readonly type: "string"; readonly description: "Target key field name (defaults to primary key of target resource)"; }; readonly through: { readonly type: "string"; readonly description: "Join table for many-to-many relationships"; }; }; }; }; readonly initialData: { readonly type: "array"; readonly description: "Initial data for this resource"; readonly items: { readonly type: "object"; }; }; }; }; }; readonly options: { readonly type: "object"; readonly properties: { readonly port: { readonly type: "number"; readonly description: "Port for the API server (default: 3000)"; }; readonly host: { readonly type: "string"; readonly description: "Host for the API server (default: localhost)"; }; readonly corsEnabled: { readonly type: "boolean"; readonly description: "Whether CORS is enabled (default: true)"; }; readonly auth: { readonly type: "object"; readonly properties: { readonly enabled: { readonly type: "boolean"; readonly description: "Whether authentication is enabled"; }; readonly tokenExpiration: { readonly type: "number"; readonly description: "Token expiration in seconds"; }; readonly authEndpoint: { readonly type: "string"; readonly description: "Authentication endpoint (default: /auth/login)"; }; readonly secretKey: { readonly type: "string"; readonly description: "Secret key for JWT token signing"; }; readonly tokenHeader: { readonly type: "string"; readonly description: "Header name for authentication token (default: Authorization)"; }; readonly users: { readonly type: "array"; readonly description: "Predefined users for authentication"; readonly items: { readonly type: "object"; readonly required: readonly ["username", "password"]; readonly properties: { readonly username: { readonly type: "string"; }; readonly password: { readonly type: "string"; }; readonly role: { readonly type: "string"; }; }; }; }; }; }; readonly latency: { readonly type: "object"; readonly properties: { readonly enabled: { readonly type: "boolean"; readonly description: "Whether latency simulation is enabled"; }; readonly fixed: { readonly type: "number"; readonly description: "Fixed delay in milliseconds"; }; readonly min: { readonly type: "number"; readonly description: "Minimum delay in milliseconds for random delay"; }; readonly max: { readonly type: "number"; readonly description: "Maximum delay in milliseconds for random delay"; }; }; }; readonly errorSimulation: { readonly type: "object"; readonly properties: { readonly enabled: { readonly type: "boolean"; readonly description: "Whether error simulation is enabled"; }; readonly rate: { readonly type: "number"; readonly description: "Probability of error (0-1)"; }; readonly statusCodes: { readonly type: "array"; readonly items: { readonly type: "number"; }; readonly description: "Possible error status codes to return"; }; readonly queryParamTrigger: { readonly type: "string"; readonly description: "Query param to trigger errors (e.g., ?errorCode=500)"; }; }; }; readonly dbPath: { readonly type: "string"; readonly description: "Path to JSON storage file"; }; readonly logRequests: { readonly type: "boolean"; readonly description: "Whether to log API requests"; }; readonly allowPartialResponses: { readonly type: "boolean"; readonly description: "Whether to allow partial responses with fields parameter"; }; readonly defaultPageSize: { readonly type: "number"; readonly description: "Default page size for pagination"; }; readonly maxPageSize: { readonly type: "number"; readonly description: "Maximum allowed page size"; }; }; }; readonly data: { readonly type: "object"; readonly description: "Initial data for all resources"; readonly additionalProperties: { readonly type: "array"; readonly items: { readonly type: "object"; }; }; }; }; }; export declare const exampleConfig: ApiConfig;