import type { SlugCasing } from '@renoun/mdx'; import { type OutlineRange } from '../utils/get-outline-ranges.ts'; import type { ModuleExport } from '../utils/get-file-exports.ts'; import type { Kind } from '../utils/resolve-type.ts'; import type { ExportHistoryGenerator, ExportHistoryReport, GitExportMetadata, GitMetadata, GitModuleMetadata, Section } from './types.ts'; export interface JavaScriptFileReferenceBaseData { exportMetadata: ModuleExport[]; gitMetadataByName: Record; fileGitMetadata: GitMetadata; } export interface JavaScriptFileResolvedTypesData { resolvedTypes: Kind[]; typeDependencies: string[]; } export interface JavaScriptFileReferenceData extends JavaScriptFileReferenceBaseData, JavaScriptFileResolvedTypesData { } export type PersistedGitAuthorMetadata = { name: string; githubProfileUrl?: string; commitCount: number; firstCommitDate?: string; lastCommitDate?: string; }; export type PersistedGitMetadata = { authors: PersistedGitAuthorMetadata[]; firstCommitDate?: string; lastCommitDate?: string; }; export type PersistedGitExportMetadata = { firstCommitDate?: string; lastCommitDate?: string; firstCommitHash?: string; lastCommitHash?: string; }; export type PersistedGitExportMetadataByName = Record; export interface PersistedJavaScriptFileReferenceBaseData { exportMetadata: ModuleExport[]; gitMetadataByName: PersistedGitExportMetadataByName; fileGitMetadata: PersistedGitMetadata; } export interface PersistedJavaScriptFileResolvedTypesData { resolvedTypes: Kind[]; typeDependencies: string[]; } export declare function createEmptyGitMetadata(): GitMetadata; export declare function createEmptyGitExportMetadata(): GitExportMetadata; export declare function toGitMetadataDateValue(value?: Date): string | undefined; export declare function toGitMetadataDate(value?: string | Date): Date | undefined; export declare function serializeGitMetadataForCache(metadata: GitMetadata): PersistedGitMetadata; export declare function deserializeGitMetadataFromCache(metadata: PersistedGitMetadata): GitMetadata; export declare function serializeGitExportMetadataForCache(metadata: GitExportMetadata): PersistedGitExportMetadata; export declare function deserializeGitExportMetadataFromCache(metadata: PersistedGitExportMetadata | undefined): GitExportMetadata; export declare function serializeGitExportMetadataRecordForCache(metadataByName: Record): PersistedGitExportMetadataByName; export declare function deserializeGitExportMetadataRecordFromCache(metadataByName: PersistedGitExportMetadataByName | null | undefined): Record; export declare function createGitMetadataFromModuleMetadata(metadata: Pick): GitMetadata; export declare function serializeJavaScriptFileReferenceBaseDataForCache(referenceData: JavaScriptFileReferenceBaseData): PersistedJavaScriptFileReferenceBaseData; export declare function deserializeJavaScriptFileReferenceBaseDataFromCache(referenceData: PersistedJavaScriptFileReferenceBaseData): JavaScriptFileReferenceBaseData; export declare function serializeJavaScriptFileResolvedTypesDataForCache(resolvedTypesData: JavaScriptFileResolvedTypesData): PersistedJavaScriptFileResolvedTypesData; export declare function deserializeJavaScriptFileResolvedTypesDataFromCache(resolvedTypesData: PersistedJavaScriptFileResolvedTypesData): JavaScriptFileResolvedTypesData; export declare function filterReferenceExportMetadata(fileExports: readonly ModuleExport[], stripInternal: boolean): ModuleExport[]; export declare function drainExportHistoryGenerator(generator: ExportHistoryGenerator): Promise; export declare function createGitExportMetadataRecordFromHistoryReport(report: ExportHistoryReport): Record; export declare function buildJavaScriptFileSections(options: { outlineRanges: OutlineRange[]; exportMetadata: readonly ModuleExport[]; slugCasing: SlugCasing; }): Section[];