import type { GetSubjectOutput, GetSubjectQuery, ListSubjectsOutput, ListSubjectsQuery, PatchSubjectFullInput, PatchSubjectOutput, PostSubjectInput, PostSubjectOutput } from '@c15t/schema/types'; import type { FetcherContext } from '../fetcher'; import type { FetchOptions, ResponseContext } from '../types'; /** * API endpoint paths for subjects */ export declare const SUBJECTS_PATH = "/subjects"; /** * Create a new subject with consent preferences * * @param context - Fetcher context * @param input - Subject creation input * @param options - Optional fetch options * @returns Created subject response */ export declare function createSubject(context: FetcherContext, input: PostSubjectInput, options?: FetchOptions): Promise>; /** * Get a subject by ID * * @param context - Fetcher context * @param id - Subject ID * @param query - Optional query parameters * @param options - Optional fetch options * @returns Subject data response */ export declare function getSubject(context: FetcherContext, id: string, query?: GetSubjectQuery, options?: FetchOptions): Promise>; /** * Update a subject (link external ID or update preferences) * * @param context - Fetcher context * @param id - Subject ID * @param input - Patch input with externalId or other fields * @param options - Optional fetch options * @returns Updated subject response */ export declare function patchSubject(context: FetcherContext, id: string, input: Omit, options?: FetchOptions>): Promise>; /** * List subjects with optional filtering * * @param context - Fetcher context * @param query - Query parameters for filtering * @param options - Optional fetch options * @returns List of subjects */ export declare function listSubjects(context: FetcherContext, query?: ListSubjectsQuery, options?: FetchOptions): Promise>;