/**
 * Logseq Storage Adapter
 *
 * Writes and reads markdown files in a Logseq graph on disk. Like the
 * Obsidian adapter, this is filesystem-shaped — Logseq graphs are
 * directories of `.md` (or `.org`) files plus a `logseq/` config dir
 * we never touch.
 *
 * About the Logseq HTTP API: as of April 2025 the DB-backed Logseq
 * rewrite is still in development; file-backed graphs remain primary.
 * Logseq exposes an HTTP API at `http://127.0.0.1:12315/api` (with a
 * bearer token issued from Settings → Features → Developer mode), but
 * verifying its exact command surface requires hands-on Logseq access.
 *
 * What this adapter does:
 *   - Reads / writes / lists / deletes markdown files via fs
 *   - Optional HTTP API reachability probe (when `useApi: true`) —
 *     emits a one-time stderr warning if `LOGSEQ_API_TOKEN` is unset or
 *     the API is unreachable
 *   - Refuses paths into the graph's `logseq/` config directory
 *   - Transforms `WriteMeta.frontmatter` from YAML into Logseq's
 *     page-level `property:: value` syntax
 *   - Never writes block IDs (`id::`) — Logseq auto-assigns them
 *
 * Path layout (mirrors Logseq's on-disk conventions):
 *   pages/<title>.md          regular pages
 *   journals/YYYY_MM_DD.md    journal entries
 *   logseq/*                  REFUSED (Logseq config)
 *
 * @design @.aiwg/architecture/storage-design.md (§5.3)
 * @issue #934
 * @issue #958
 */
import type { LogseqBackendConfig, StorageAdapter, StorageEntry, WriteMeta } from '../types.js';
export declare class LogseqAdapter implements StorageAdapter {
    /** Absolute path to the Logseq graph root. */
    private readonly graph;
    private readonly apiUrl;
    private readonly useApi;
    private apiWarned;
    constructor(config: LogseqBackendConfig);
    init(): Promise<void>;
    /**
     * One-shot API reachability probe. Warns once on missing token or
     * unreachable endpoint. Direct fs writes still work without it.
     */
    private probeApi;
    /**
     * Validate a subsystem-relative path. Rejects traversal, absolute
     * paths, backslashes, and any path inside the graph's `logseq/` dir.
     */
    private resolveSafe;
    read(path: string): Promise<string | null>;
    write(path: string, content: string, meta?: WriteMeta): Promise<void>;
    list(prefix: string): Promise<StorageEntry[]>;
    delete(path: string): Promise<void>;
}
//# sourceMappingURL=logseq.d.ts.map