import type { ProjectSchemaJSON, PropertySchema } from './project-schema/index.ts';
import { type LayerSchema } from './types/index.ts';
import { type TransformProcessFactory } from './unions.ts';
export type SchemaTransform = (projectSchema: LayerSchema) => LayerSchema;
export declare function removePropertiesTransform(propertyNames: string[]): SchemaTransform;
export declare function toName(name: string): string;
export declare function transformOneOf(process: TransformProcessFactory): (projectSchema: ProjectSchemaJSON, schema: PropertySchema, obj: Record<string, unknown>) => Record<string, unknown>;
/**
 * Unwrap oneOf objects in "GraphQL oneOf" style wrapper objects
 * See https://github.com/graphql/graphql-spec/pull/825 for more on "GraphQL oneOf"
 * Opposite of `wrapOneOfObjects`
 */
export declare const unwrapOneOfObjects: (projectSchema: ProjectSchemaJSON, schema: PropertySchema, obj: Record<string, unknown>) => Record<string, unknown>;
/**
 * Wrap oneOf objects in "GraphQL oneOf" style wrapper objects
 * See https://github.com/graphql/graphql-spec/pull/825 for more on "GraphQL oneOf"
 * Opposite of `unwrapOneOfObjects`
 */
export declare const wrapOneOfObjects: (projectSchema: ProjectSchemaJSON, schema: PropertySchema, obj: Record<string, unknown>) => Record<string, unknown>;
