import * as Mapping from '../../mapping/Mapping.js';
import type * as Model from './Model.js';
declare const SchemaParserFailure_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
    readonly _tag: "/Hypergraph/cli/errors/SchemaParserFailure";
} & Readonly<A>;
export declare class SchemaParserFailure extends SchemaParserFailure_base<{
    readonly message: string;
    readonly cause: unknown;
}> {
}
/**
 * Builds a string of the schema.ts file contents after parsing the schema into the correct format.
 *
 * @example
 *
 * ```typescript
 * const schema = Model.TypesyncHypergraphSchema.make({
 *   types: [
 *     {
 *       name: "User",
 *       knowledgeGraphId: null,
 *       status: null,
 *       properties: [
 *         {
 *           name: "name",
 *           dataType: "String",
 *           knowledgeGraphId: null,
 *           optional: null,
 *           status: null
 *         }
 *       ]
 *     }
 *   ]
 * })
 * const schemaFile = buildSchemaFile(schema)
 *
 * expect(schemaFile).toEqual(`
 * import { Entity, Type } from '@graphprotocol/hypergraph';
 *
 * export class User extends Entity.Class<User>('User')({
 *   name: Type.String
 * }) {}
 * `)
 * ```
 */
export declare function buildSchemaFile(schema: Model.TypesyncHypergraphSchema): string;
export declare function buildMappingFile(mapping: Mapping.Mapping | Model.TypesyncHypergraphMapping): string;
/**
 * Builds a string of the mapping.ts file contents after parsing the schema into the correct mapping format.
 *
 * @example
 *
 * ```typescript
 * const schema = Model.TypesyncHypergraphSchema.make({
 *   types: [
 *     {
 *       name: "User",
 *       knowledgeGraphId: "7f9562d4-034d-4385-bf5c-f02cdebba47a",
 *       status: null,
 *       properties: [
 *         {
 *           name: "name",
 *           dataType: "String",
 *           knowledgeGraphId: "a126ca53-0c8e-48d5-b888-82c734c38935",
 *           optional: null,
 *           status: null
 *         }
 *       ]
 *     }
 *   ]
 * })
 * const mappingFile = buildMappingFile(schema)
 *
 * expect(mappingFile).toEqual(`
 * import type { Mapping } from '@graphprotocol/hypergraph/mapping';
 * import { Id } from '@graphprotocol/hypergraph';
 *
 * export const mapping: Mapping = {
 *   User: {
 *     typeIds: [Id('7f9562d4-034d-4385-bf5c-f02cdebba47a')],
 *     properties: {
 *       name: Id('a126ca53-0c8e-48d5-b888-82c734c38935'),
 *     }
 *   }
 * }
 * `)
 * ```
 */
export declare function buildMappingFileFromSchema(schema: Model.TypesyncHypergraphSchema): string;
export {};
//# sourceMappingURL=Utils.d.ts.map