import { ProjectScopeConfig } from "../../db/manage/scope-definitions.js";
import "../../types/utility.js";
import { AgentsManageDatabaseClient } from "../../db/manage/manage-client.js";
import { FullProjectDefinition, FullProjectSelect, FullProjectSelectWithRelationIds } from "../../types/entities.js";

//#region src/data-access/manage/projectFull.d.ts

/**
 * Server-side implementation of createFullProject that performs actual database operations.
 * This function creates a complete project with all agent and their nested resources.
 */
declare const createFullProjectServerSide: (db: AgentsManageDatabaseClient) => (params: {
  scopes: ProjectScopeConfig;
  projectData: FullProjectDefinition;
}) => Promise<FullProjectSelect>;
/**
 * Server-side implementation of updateFullProject that performs actual database operations.
 * This function updates a complete project with all agent and their nested resources.
 */
declare const updateFullProjectServerSide: (db: AgentsManageDatabaseClient) => (params: {
  scopes: ProjectScopeConfig;
  projectData: FullProjectDefinition;
}) => Promise<FullProjectSelect>;
declare const getFullProject: (db: AgentsManageDatabaseClient) => (params: {
  scopes: ProjectScopeConfig;
}) => Promise<FullProjectSelect | null>;
declare const getFullProjectWithRelationIds: (db: AgentsManageDatabaseClient) => (params: {
  scopes: ProjectScopeConfig;
}) => Promise<FullProjectSelectWithRelationIds | null>;
/**
 * Delete a complete project and cascade to all related entities
 */
declare const deleteFullProject: (db: AgentsManageDatabaseClient) => (params: {
  scopes: ProjectScopeConfig;
}) => Promise<boolean>;
//#endregion
export { createFullProjectServerSide, deleteFullProject, getFullProject, getFullProjectWithRelationIds, updateFullProjectServerSide };