export type PraxisApplicationProjectDescriptor = {
    schema?: string;
    kind?: string;
    id: string;
    entry: string;
    export?: string;
    agents?: Readonly<Record<string, string | {
        entry: string;
        export?: string;
        id?: string;
    }>>;
    application?: {
        id?: string;
    };
    agent?: {
        id?: string;
    };
    paths?: Readonly<Record<string, string>>;
};
export type PraxisApplicationProject = {
    projectRoot: string;
    descriptorPath: string;
    descriptor: PraxisApplicationProjectDescriptor;
    projectId: string;
    applicationId: string;
    agentEntryPath: string;
    exportName?: string;
    agentEntries: Readonly<Record<string, {
        entryPath: string;
        exportName?: string;
        agentId?: string;
    }>>;
    paths: Readonly<Record<string, string>>;
};
export type PraxisApplicationProjectResult = {
    ok: true;
    project: PraxisApplicationProject;
} | {
    ok: false;
    error: {
        code: "PROJECT_NOT_FOUND" | "PROJECT_DESCRIPTOR_INVALID" | "AGENT_ENTRY_NOT_FOUND";
        message: string;
    };
};
export declare function loadApplicationProject(projectRoot: string): Promise<PraxisApplicationProjectResult>;
