import { type RepoAutoMerge } from '../dashboard/gh.js';
import type { DriverReady } from '../dashboard/types.js';
import type { ProjectSummary } from '../dashboard/projects.js';
import type { AddProjectResult, OnboardingSuggestion } from '../dashboard/types.js';
export declare function onProjects(): Promise<ProjectSummary[]>;
/**
 * Add project(s) from the dashboard (#396/#433): install a single repo, or every git
 * repo under a directory, and register each so it joins the Projects list. Like
 * `sendStart` this needs the daemon (it spawns git + writes the shared registry), so it
 * calls the daemon's own `addProject` closure off the wired dashboard context. Returns
 * the daemon's {@link AddProjectResult}.
 */
export declare function sendAddProject(path: string, directory: boolean): Promise<AddProjectResult>;
/**
 * The Onboarding checklist's one server-side fact (#958): the directory this server runs in,
 * so the first step can offer "Add {cwd} as project" without the user typing a path.
 */
export declare function onOnboarding(): Promise<OnboardingSuggestion>;
/**
 * Whether this project's repo allows GitHub auto-merge (#1417): the launcher notes when the merge
 * rung is armed on a repo that does not, because the merge is then handled by the daemon's CI
 * watch (merge on green, #1216/#1418) — sound, but only while the daemon runs, unlike GitHub's
 * server-side auto-merge. Read-only and cached (#1028).
 * `null` when the project is unknown here; `known: false` when `gh` could not say (not installed,
 * not a GitHub repo), which renders nothing rather than crying wolf — the no-crying-wolf stance (#1318).
 */
export declare function onRepoAutoMerge(projectId: string): Promise<RepoAutoMerge | null>;
/**
 * Whether the picked driver's CLI can start a session at all (#1326): installed, logged in, and not
 * running as root. The launcher says so before the Start, the way #1318 warns about folder trust,
 * rather than leaving the user with a spent branch and a dashboard stuck on "Waiting for the
 * session to start..." (#1323).
 *
 * Reports problems only, and only ones the user can act on. The passing checks carry the version
 * string and the logged-in account, which are of no use to a launcher and have no business
 * reaching a browser that may be a relay guest, so they stay on this side.
 *
 * `publish` adds the `gh` half (#1419): a launcher with the PR/merge rung armed wants to hear
 * about a missing or logged-out GitHub CLI now, not discover it hours later as a session whose
 * publishing silently stopped at the pushed branch.
 */
export declare function onDriverReady(driver: string, publish?: boolean): Promise<DriverReady>;
//# sourceMappingURL=projects.d.ts.map