import type { JsonObject } from '../../types.ts';
import { type NotionTransport } from './client.ts';
export declare function searchDataSources(transport: NotionTransport): Promise<JsonObject[]>;
export declare function getDatabase(transport: NotionTransport, databaseId: string): Promise<JsonObject>;
export declare function getDataSource(transport: NotionTransport, dataSourceId: string): Promise<JsonObject>;
/**
 * Yield query pages only as the caller requests them. Each page is checked
 * for an incomplete response before yielding its rows. Closing the iterator
 * prevents further requests; the shared cursor walker retains its
 * repeated-cursor and terminal-page rules. Query options are never mutated.
 */
export declare function queryDataSourcePages(transport: NotionTransport, dataSourceId: string, body?: JsonObject): AsyncGenerator<JsonObject[], void>;
export declare function getPage(transport: NotionTransport, pageId: string): Promise<JsonObject>;
export declare function getSelf(transport: NotionTransport): Promise<JsonObject>;
export declare function getPageMarkdown(transport: NotionTransport, pageId: string): Promise<JsonObject>;
export declare function replacePageMarkdown(transport: NotionTransport, pageId: string, markdown: string): Promise<JsonObject>;
export declare function queryDataSourcePage(transport: NotionTransport, dataSourceId: string, body: JsonObject): Promise<JsonObject>;
export declare function listBlockChildren(transport: NotionTransport, blockId: string): Promise<JsonObject[]>;
export declare function listBlockTree(transport: NotionTransport, blockId: string, depth?: number): Promise<JsonObject[]>;
export interface ChildPageRef {
    id: string;
    title: string;
    lastEditedTime: string;
}
export declare function getChildPages(transport: NotionTransport, parentBlockId: string): Promise<ChildPageRef[]>;
export declare function searchPages(transport: NotionTransport, query?: string, pageSize?: number, maxResults?: number): Promise<JsonObject[]>;
export interface CreatePageInput {
    parent: {
        type: 'workspace';
    } | {
        type: 'page_id';
        page_id: string;
    };
    title: string;
}
export declare function createPage(transport: NotionTransport, input: CreatePageInput): Promise<JsonObject>;
export declare function createPageRaw(transport: NotionTransport, body: JsonObject): Promise<JsonObject>;
export declare function updatePage(transport: NotionTransport, pageId: string, body: JsonObject): Promise<JsonObject>;
//# sourceMappingURL=pages.d.ts.map