/**
 * Notion External Provider
 *
 * Implements the ExternalProvider interface for Notion.
 * Handles connection testing via the Notion API and provides a
 * DocumentSyncAdapter for bidirectional page synchronization.
 *
 * The provider uses a NotionApiClient for all API interactions.
 * Connection testing calls GET /users/me to verify the token.
 *
 * Configuration:
 * - Token: set via `sf external-sync config set-token notion ntn_xxxxx`
 * - Project (database ID): set via `sf external-sync config set-project notion <database-id>`
 *
 * @example
 * ```typescript
 * const provider = createNotionProvider({ token: 'ntn_...' });
 * const registry = createProviderRegistry();
 * registry.register(provider);
 *
 * // Test connection
 * const connected = await provider.testConnection({ provider: 'notion', token: 'ntn_...' });
 *
 * // Get document adapter
 * const adapter = provider.getDocumentAdapter();
 * const page = await adapter.getPage('database-id', 'page-id');
 * ```
 */
import type { ExternalProvider } from '@stoneforge/core';
/**
 * Options for creating a Notion provider.
 */
export interface CreateNotionProviderOptions {
    /** Notion integration token */
    token: string;
}
/**
 * Create a configured Notion provider.
 *
 * The provider is fully configured with the given token and ready
 * for registration in the provider registry.
 *
 * @param options - Configuration including the integration token
 * @returns A configured Notion ExternalProvider
 */
export declare function createNotionProvider(options: CreateNotionProviderOptions): ExternalProvider;
/**
 * Create a placeholder Notion provider for registry registration.
 *
 * Similar to the GitHub and Linear placeholders — registers the provider
 * shape so the registry knows Notion is available. Connection testing
 * always returns false. All adapter methods throw descriptive errors.
 *
 * @returns A placeholder Notion ExternalProvider
 */
export declare function createNotionPlaceholderProvider(): ExternalProvider;
//# sourceMappingURL=notion-provider.d.ts.map