import type { CollectionModels, ContentTypeModels, ContentTypeSnippetModels, EnvironmentModels, LanguageModels, TaxonomyModels, WorkflowModels } from "@kontent-ai/management-sdk";
import type { GeneratedSet, ModuleFileExtension } from "../../core/core.models.js";
import type { FilenameResolver, NameResolver } from "../../core/resolvers.js";
export type DeliveryFileResolvers = {
    readonly contentType?: FilenameResolver<ContentTypeModels.ContentType>;
    readonly snippet?: FilenameResolver<ContentTypeSnippetModels.ContentTypeSnippet>;
    readonly taxonomy?: FilenameResolver<TaxonomyModels.Taxonomy>;
    readonly language?: FilenameResolver<LanguageModels.LanguageModel>;
    readonly collection?: FilenameResolver<CollectionModels.Collection>;
    readonly workflow?: FilenameResolver<WorkflowModels.Workflow>;
};
export type DeliveryNameResolvers = {
    readonly contentType?: NameResolver<ContentTypeModels.ContentType>;
    readonly snippet?: NameResolver<ContentTypeSnippetModels.ContentTypeSnippet>;
    readonly taxonomy?: NameResolver<TaxonomyModels.Taxonomy>;
    readonly language?: NameResolver<LanguageModels.LanguageModel>;
    readonly collection?: NameResolver<CollectionModels.Collection>;
    readonly workflow?: NameResolver<WorkflowModels.Workflow>;
};
export interface DeliveryGeneratorConfig {
    readonly moduleFileExtension: ModuleFileExtension;
    readonly disableComments: boolean;
    readonly environmentData: {
        readonly environment: Readonly<EnvironmentModels.EnvironmentInformationModel>;
        readonly types: readonly Readonly<ContentTypeModels.ContentType>[];
        readonly snippets: readonly Readonly<ContentTypeSnippetModels.ContentTypeSnippet>[];
        readonly workflows: readonly Readonly<WorkflowModels.Workflow>[];
        readonly languages: readonly Readonly<LanguageModels.LanguageModel>[];
        readonly collections: readonly Readonly<CollectionModels.Collection>[];
        readonly taxonomies: readonly Readonly<TaxonomyModels.Taxonomy>[];
    };
    readonly fileResolvers?: DeliveryFileResolvers;
    readonly nameResolvers?: DeliveryNameResolvers;
}
export declare function deliveryGenerator(config: DeliveryGeneratorConfig): {
    getTypeFiles: () => readonly GeneratedSet[];
    getSystemFiles(): GeneratedSet;
};
