import { BaseCapability, BaseContext, BaseOptions } from '@platformatic/basic' import { Configuration, ConfigurationOptions } from '@platformatic/foundation' import { BaseGenerator } from '@platformatic/generators' import { JSONSchemaType } from 'ajv' import { FastifyInstance } from 'fastify' import type { PlatformaticServiceConfig } from './config.d.ts' export type { PlatformaticServiceConfig } from './config.d.ts' export interface ServiceContext extends BaseContext { applicationFactory?: (app: FastifyInstance, capability: ServiceCapability) => Promise fastifyPlugins?: Function[] loggerConfig?: object } export interface PlatformaticApplication { config: Configuration } export type ServerInstance = FastifyInstance & { platformatic: PlatformaticApplication } export type ServiceConfiguration = Configuration export declare function transform ( config: ServiceConfiguration, schema?: object, options?: ConfigurationOptions ): Promise export declare function loadConfiguration ( root: string | PlatformaticServiceConfig, source?: string | PlatformaticServiceConfig, context?: ConfigurationOptions ): Promise> export declare function create ( root: string | PlatformaticServiceConfig, source?: string | PlatformaticServiceConfig, context?: ConfigurationOptions ): Promise export declare const skipTelemetryHooks: boolean export declare function platformaticService (app: FastifyInstance, capability: ServiceCapability): Promise export declare class Generator extends BaseGenerator {} export declare function applyTestHelperCustomizations ( helper: string, mod: string, customizations: Record ): string export declare const packageJson: Record export declare const schema: JSONSchemaType export declare const schemaComponents: { $defs: JSONSchemaType plugins: JSONSchemaType openApiBase: JSONSchemaType openapi: JSONSchemaType proxy: JSONSchemaType graphqlBase: JSONSchemaType graphql: JSONSchemaType application: JSONSchemaType } export declare const version: string export declare class ServiceCapability extends BaseCapability< Config, BaseOptions > { applicationFactory: (app: FastifyInstance, capability: ServiceCapability) => Promise fastifyOptions?: Record loggerConfig?: object constructor (root: string, config: Config, context?: object) getApplication (): FastifyInstance }