import type { CreateDatasourceRequest, CreateDatasourceResponse, GetDatasourceResponse, ListDatasourcesResponse, UpdateDatasourceRequest, UpdateDatasourceResponse } from '../../models/Datasource';
/**
 * Create a new datasource.
 * Creates a new datasource configuration for the authenticated user.
 *
 * @param token - Authentication token
 * @param data - Datasource creation data
 * @param baseUrl - Base URL for IAM service
 * @returns Created datasource data
 *
 * @example
 * ```typescript
 * const response = await createDatasource(token, {
 *   type: 'Amazon Athena',
 *   name: 'my-athena-datasource',
 *   description: 'Production Athena datasource',
 *   database: 'my_database',
 *   output_bucket: 's3://my-bucket/output/'
 * });
 * ```
 */
export declare const createDatasource: (token: string, data: CreateDatasourceRequest, baseUrl?: string) => Promise<CreateDatasourceResponse>;
/**
 * List all datasources for authenticated user.
 * Retrieves all datasource configurations accessible to the user.
 *
 * @param token - Authentication token
 * @param baseUrl - Base URL for IAM service
 * @returns List of datasources
 *
 * @example
 * ```typescript
 * const response = await listDatasources(token);
 * console.log(response.datasources);
 * ```
 */
export declare const listDatasources: (token: string, baseUrl?: string) => Promise<ListDatasourcesResponse>;
/**
 * Get a specific datasource by ID.
 * Retrieves detailed information about a specific datasource.
 *
 * @param token - Authentication token
 * @param datasourceId - Datasource unique identifier
 * @param baseUrl - Base URL for IAM service
 * @returns Datasource data
 *
 * @example
 * ```typescript
 * const response = await getDatasource(token, 'datasource-id-123');
 * console.log(response.datasource);
 * ```
 */
export declare const getDatasource: (token: string, datasourceId: string, baseUrl?: string) => Promise<GetDatasourceResponse>;
/**
 * Update a specific datasource.
 * Updates the configuration of an existing datasource.
 *
 * @param token - Authentication token
 * @param datasourceId - Datasource unique identifier
 * @param data - Update data
 * @param baseUrl - Base URL for IAM service
 * @returns Updated datasource data
 *
 * @example
 * ```typescript
 * const response = await updateDatasource(token, 'datasource-id-123', {
 *   description: 'Updated description',
 *   database: 'new_database'
 * });
 * ```
 */
export declare const updateDatasource: (token: string, datasourceId: string, data: UpdateDatasourceRequest, baseUrl?: string) => Promise<UpdateDatasourceResponse>;
/**
 * Delete a specific datasource.
 * Removes a datasource configuration.
 *
 * @param token - Authentication token
 * @param datasourceId - Datasource unique identifier
 * @param baseUrl - Base URL for IAM service
 *
 * @example
 * ```typescript
 * await deleteDatasource(token, 'datasource-id-123');
 * ```
 */
export declare const deleteDatasource: (token: string, datasourceId: string, baseUrl?: string) => Promise<void>;
