import type { ContentTypeModels, TaxonomyModels, WorkflowModels } from "@kontent-ai/management-sdk";
import type { DeliveryGeneratorConfig } from "./delivery.generator.js";
import type { DeliveryEntity, DeliveryEntityType } from "./delivery-entity.generator.js";
export type DeliveryEntityNames<T extends DeliveryEntityType> = {
    readonly codenamesValuePropertyName: string;
    readonly codenamesTypeName: string;
    readonly codenamesTypeguardFunctionName: string;
    readonly overviewFilename: string;
    readonly folderName: string;
    readonly getEntityName: (entity: Readonly<DeliveryEntity>) => string;
    readonly getEntityFilename: (entity: Readonly<DeliveryEntity>, addExtension: boolean) => string;
    readonly getCodenameTypeName: (entity: Readonly<DeliveryEntity>) => string;
    readonly getTypeguardFunctionName: (entity: Readonly<DeliveryEntity>) => string;
} & AdditionalEntityNames<T>;
export type AdditionalEntityNames<T> = T extends "Taxonomy" ? {
    readonly termsNames: {
        readonly valuesPropertyName: (taxonomy: Readonly<TaxonomyModels.Taxonomy>) => string;
        readonly codenamesTypeName: (taxonomy: Readonly<TaxonomyModels.Taxonomy>) => string;
        readonly typeguardFunctionName: (taxonomy: Readonly<TaxonomyModels.Taxonomy>) => string;
    };
} : T extends "Workflow" ? {
    readonly allStepsNames: {
        readonly valuesPropertyName: string;
        readonly codenamesTypeName: string;
        readonly typeguardFunctionName: string;
    };
    readonly stepsNames: {
        readonly valuesPropertyName: (workflow: Readonly<WorkflowModels.Workflow>) => string;
        readonly codenamesTypeName: (workflow: Readonly<WorkflowModels.Workflow>) => string;
        readonly typeguardFunctionName: (workflow: Readonly<WorkflowModels.Workflow>) => string;
    };
} : T extends "Type" ? {
    readonly typeNames: {
        readonly contentItemTypeguardFunctionName: (type: Readonly<ContentTypeModels.ContentType>) => string;
    };
} : NonNullable<unknown>;
export declare function getDeliveryEntityNamesGenerator<T extends DeliveryEntityType>(config: {
    readonly nameResolvers: Pick<DeliveryGeneratorConfig, "nameResolvers">["nameResolvers"];
    readonly fileResolvers: Pick<DeliveryGeneratorConfig, "fileResolvers">["fileResolvers"];
    readonly entityType: T;
}): {
    getEntityNames: () => DeliveryEntityNames<T>;
};
