import type { ProjectSchemaJSON, PropertySchema } from '../project-schema/index.ts';
import type { ServiceLayers } from '../types/types.ts';
import type { Agent, GetShapeOptions, ProjectSchema, Query, Shape } from './types.ts';
export declare class ProjectSchemaImpl implements ProjectSchema {
    #private;
    constructor(projectSchemaJson: ProjectSchemaJSON, layers: ServiceLayers);
    getShape(rawShapeRef: string, options?: GetShapeOptions): Shape | undefined;
    getQuery(rawQueryRef: string): Query | undefined;
    ensureQuery(ref: string): Query;
    getLocalQueries(): Query[];
    getLocalMutations(): Query[];
    getAgents(): Agent[];
    ensureAgent(name: string): Agent;
    getAgent(name: string): Agent | undefined;
    dereferenceSchema(propertySchema: PropertySchema): PropertySchema;
    dereferenceObjectSchema(propertySchema: PropertySchema): import("../project-schema/latest.ts").ObjectSchema;
    get json(): ProjectSchemaJSON;
}
