import { FAQItem } from '@dualmark/core'; interface BaseConverterConfig { siteUrl: string; brandFooter?: string; } interface CollectionEntry { id: string; data: TData; body?: string; } type Converter = (entry: TEntry) => string; type ConverterFactory = (config: TConfig) => Converter; type RelatedLinkRef = { slug: string; collection: string; basePath?: string; }; interface ApiReferenceConverterConfig extends BaseConverterConfig { basePath?: string; } interface OpenAPISchema { type?: string | string[]; properties?: Record; items?: OpenAPISchema; required?: string[]; description?: string; $ref?: string; [key: string]: unknown; } interface OpenAPIParameter { name: string; in: string; required?: boolean; schema?: OpenAPISchema; description?: string; [key: string]: unknown; } interface OpenAPIMediaType { schema?: OpenAPISchema; [key: string]: unknown; } interface OpenAPIRequestBody { description?: string; content?: Record; required?: boolean; [key: string]: unknown; } interface OpenAPIResponse { description?: string; content?: Record; [key: string]: unknown; } interface ApiReferenceEntryData { title: string; summary?: string; description?: string; method: string; path: string; tags?: string[]; parameters?: OpenAPIParameter[]; requestBody?: OpenAPIRequestBody; responses?: Record; codeSamples?: Array<{ lang: string; source: string; label?: string; }>; } declare function apiReferenceConverter(config: ApiReferenceConverterConfig): Converter>; declare function fromOpenAPI(spec: any, operationId: string): CollectionEntry; interface BlogConverterConfig extends BaseConverterConfig { basePath?: string; categoryBasePath?: string; showAllArticlesLink?: boolean; } interface BlogEntryData { title: string; description?: string; author?: string; publishedDate: Date; modifiedDate?: Date; category?: string | string[]; } declare function blogConverter(config: BlogConverterConfig): Converter>; interface CaseStudyConverterConfig extends BaseConverterConfig { basePath?: string; } interface CaseStudyEntryData { title: string; description?: string; company: string; industry?: string; publishedDate: Date; stats?: Array<{ value: string; label: string; }>; quote?: { text: string; attribution?: string; }; } declare function caseStudyConverter(config: CaseStudyConverterConfig): Converter>; interface GlossaryConverterConfig extends BaseConverterConfig { basePath?: string; } interface GlossaryEntryData { title: string; summary?: string; learnMore?: Array<{ title: string; href: string; }>; canonicalBlog?: string; } declare function glossaryConverter(config: GlossaryConverterConfig): Converter>; interface IntegrationConverterConfig extends BaseConverterConfig { basePath: string; } interface IntegrationEntryData { title: string; vendor: string; categories: string[]; description: string; capabilities: string[]; setupSteps?: string[]; pricing?: string; requirements?: string[]; } declare function integrationConverter(config: IntegrationConverterConfig): Converter>; interface LegalConverterConfig extends BaseConverterConfig { basePath?: string; } interface LegalEntryData { title: string; lastUpdated?: Date; } declare function legalConverter(config: LegalConverterConfig): Converter>; interface CompareConverterConfig extends BaseConverterConfig { basePath?: string; ourBrandColumn: string; } interface CompareEntryData { title: string; description?: string; competitorName?: string; featureCards?: Array<{ title: string; description: string; }>; comparison?: Array<{ feature: string; ours: string; competitor: string; }>; } declare function compareConverter(config: CompareConverterConfig): Converter>; interface ToolConverterConfig extends BaseConverterConfig { basePath?: string; } interface ToolEntryData { title: string; description: string; } declare function toolConverter(config: ToolConverterConfig): Converter>; interface VideoConverterConfig extends BaseConverterConfig { basePath?: string; } interface VideoEntryData { title: string; description?: string; videoUrl: string; } declare function videoConverter(config: VideoConverterConfig): Converter>; interface FeatureSection { title: string; content: string; } interface FeatureRelatedLink { title: string; href: string; } interface FeatureConverterConfig extends BaseConverterConfig { basePath: string; category?: string; siblings?: Array<{ slug: string; title: string; }>; } interface FeatureEntryData { title: string; description?: string; problem?: FeatureSection[]; solution?: FeatureSection[]; sections?: FeatureSection[]; audience?: string[]; useCases?: string[]; docsUrl?: string; faqs?: FAQItem[]; related?: FeatureRelatedLink[]; } declare function featureConverter(config: FeatureConverterConfig): Converter>; interface PseoFact { label: string; value: string; } interface PseoRelatedGroup { title: string; basePath: string; slugs: string[]; titleTransform?: "slug-to-title" | "uppercase" | ((slug: string) => string); } interface PseoConverterConfig extends BaseConverterConfig { basePath: string; } interface PseoEntryData { title: string; description?: string; facts?: PseoFact[]; related?: PseoRelatedGroup[]; } declare function pseoConverter(config: PseoConverterConfig): Converter>; type ChangelogChangeType = "added" | "changed" | "deprecated" | "removed" | "fixed" | "security"; interface ChangelogChange { type: ChangelogChangeType; description: string; } interface ChangelogConverterConfig extends BaseConverterConfig { basePath?: string; } interface ChangelogEntryData { version: string; title?: string; releasedDate: Date; summary?: string; changes?: ChangelogChange[]; } declare function changelogConverter(config: ChangelogConverterConfig): Converter>; type StatusPageOverallStatus = "operational" | "degraded" | "partial-outage" | "major-outage"; interface StatusPageComponent { name: string; status: string; uptime90d?: number; } interface StatusPageIncident { title: string; date: string; resolved: boolean; summary: string; } interface StatusPageConverterConfig extends BaseConverterConfig { /** Collection URL prefix (e.g. `/status`). Set automatically by framework adapters. */ basePath?: string; } interface StatusPageEntryData { title: string; /** Canonical status page URL. When omitted or blank, defaults to `siteUrl + basePath + / + entry.id`. */ url?: string; overall: StatusPageOverallStatus; components: StatusPageComponent[]; incidents?: StatusPageIncident[]; } declare function statusPageConverter(config: StatusPageConverterConfig): Converter>; interface PricingTier { name: string; price: string; billingPeriod?: string; description?: string; highlights?: string[]; cta?: { label: string; href: string; }; recommended?: boolean; } interface PricingConverterConfig extends BaseConverterConfig { basePath?: string; } interface PricingEntryData { title: string; description?: string; tiers: PricingTier[]; comparisonNotes?: string; faqs?: FAQItem[]; } declare function pricingConverter(config: PricingConverterConfig): Converter>; interface DocsConverterConfig extends BaseConverterConfig { basePath?: string; } interface DocsEntryData { title: string; description?: string; section?: string; order?: number; updatedDate?: Date; } declare function docsConverter(config: DocsConverterConfig): Converter>; declare const BUILT_IN_CONVERTERS: readonly ["api-reference", "blog", "case-study", "changelog", "compare", "docs", "feature", "glossary", "integration", "legal", "pricing", "pseo", "status-page", "tool", "video"]; type BuiltInConverterName = (typeof BUILT_IN_CONVERTERS)[number]; export { type ApiReferenceConverterConfig, type ApiReferenceEntryData, BUILT_IN_CONVERTERS, type BaseConverterConfig, type BlogConverterConfig, type BlogEntryData, type BuiltInConverterName, type CaseStudyConverterConfig, type CaseStudyEntryData, type ChangelogChange, type ChangelogChangeType, type ChangelogConverterConfig, type ChangelogEntryData, type CollectionEntry, type CompareConverterConfig, type CompareEntryData, type Converter, type ConverterFactory, type DocsConverterConfig, type DocsEntryData, type FeatureConverterConfig, type FeatureEntryData, type FeatureRelatedLink, type FeatureSection, type GlossaryConverterConfig, type GlossaryEntryData, type IntegrationConverterConfig, type IntegrationEntryData, type LegalConverterConfig, type LegalEntryData, type PricingConverterConfig, type PricingEntryData, type PricingTier, type PseoConverterConfig, type PseoEntryData, type PseoFact, type PseoRelatedGroup, type RelatedLinkRef, type StatusPageComponent, type StatusPageConverterConfig, type StatusPageEntryData, type StatusPageIncident, type StatusPageOverallStatus, type ToolConverterConfig, type ToolEntryData, type VideoConverterConfig, type VideoEntryData, apiReferenceConverter, blogConverter, caseStudyConverter, changelogConverter, compareConverter, docsConverter, featureConverter, fromOpenAPI, glossaryConverter, integrationConverter, legalConverter, pricingConverter, pseoConverter, statusPageConverter, toolConverter, videoConverter };