/**
 * Linear External Provider
 *
 * Implements the ExternalProvider interface for Linear.
 * Handles connection validation and provides access to the LinearTaskAdapter.
 *
 * Architecture:
 * - Provider handles auth configuration and connection testing
 * - Task adapter handles issue CRUD operations and field mapping
 * - API client handles GraphQL requests and rate limiting
 *
 * @example
 * ```typescript
 * const provider = createLinearProvider({ apiKey: 'lin_api_...' });
 * const registry = createProviderRegistry();
 * registry.register(provider);
 *
 * // Test connection
 * const connected = await provider.testConnection({ provider: 'linear', token: 'lin_api_...' });
 *
 * // Get task adapter
 * const adapter = provider.getTaskAdapter();
 * const issues = await adapter.listIssuesSince('ENG', '2024-01-01T00:00:00Z');
 * ```
 */
import type { ExternalProvider } from '@stoneforge/core';
/**
 * Options for creating a Linear provider.
 */
export interface CreateLinearProviderOptions {
    /** Linear API key for authentication */
    apiKey: string;
}
/**
 * Create a Linear ExternalProvider.
 *
 * The provider is fully configured with the given API key and ready
 * for registration in the provider registry.
 *
 * @param options - Configuration including the API key
 * @returns A configured Linear ExternalProvider
 */
export declare function createLinearProvider(options: CreateLinearProviderOptions): ExternalProvider;
/**
 * Create a placeholder Linear provider for registry registration.
 *
 * Similar to the GitHub placeholder — registers the provider shape so the
 * registry knows Linear is available. Connection testing always returns false.
 * The actual provider is created with createLinearProvider() when configured.
 */
export declare function createLinearPlaceholderProvider(): ExternalProvider;
//# sourceMappingURL=linear-provider.d.ts.map