/**
 * memory-node-exists — deterministic singleton-existence check (Task 442).
 *
 * The hybrid-ranking memory-search returns "no results" for an installer-seeded
 * singleton whose content properties are still empty (e.g. a :LocalBusiness
 * with no name/description yet), and the agent then claims the node does not
 * exist. This primitive bypasses ranking and answers the literal question
 * "does a node with this label exist for this account?" with a single Cypher
 * MATCH on a property-indexed lookup.
 *
 * Scope is narrow by design: only installer-seeded singleton root labels are
 * on the allow-list. Free-form label input is refused and pointed back at
 * memory-search for ranked discovery. General-purpose Cypher reads stay in
 * database-operator.
 */
export declare const ALLOWED_LABELS: readonly ["LocalBusiness", "AdminUser", "UserProfile", "Person"];
export type AllowedLabel = (typeof ALLOWED_LABELS)[number];
export interface MemoryNodeExistsParams {
    accountId: string;
    label: AllowedLabel;
}
export interface MemoryNodeExistsResult {
    exists: boolean;
    elementId: string | null;
    labels: string[] | null;
}
export declare function memoryNodeExists({ accountId, label, }: MemoryNodeExistsParams): Promise<MemoryNodeExistsResult>;
//# sourceMappingURL=memory-node-exists.d.ts.map