/**
 * Media Library Hooks
 *
 * TanStack Query hooks for media CRUD operations.
 * Handles fetching lists, individual items, updates, and deletions.
 */
import type { Media, MediaListOptions, MediaListResult, UpdateMediaInput, MediaTag } from '../lib/media/types';
/**
 * Fetch paginated list of media items with filtering and search
 */
export declare function useMediaList(options?: MediaListOptions): import("@tanstack/react-query").UseQueryResult<MediaListResult, Error>;
/**
 * Fetch a single media item by ID
 */
export declare function useMediaItem(id: string | null): import("@tanstack/react-query").UseQueryResult<Media, Error>;
/**
 * Update media metadata (title, alt text, and caption)
 */
export declare function useUpdateMedia(): import("@tanstack/react-query").UseMutationResult<Media, Error, {
    id: string;
    data: UpdateMediaInput;
}, unknown>;
/**
 * Soft delete a media item
 */
export declare function useDeleteMedia(): import("@tanstack/react-query").UseMutationResult<void, Error, string, unknown>;
/**
 * Fetch all available media tags
 */
export declare function useMediaTags(): import("@tanstack/react-query").UseQueryResult<MediaTag[], Error>;
/**
 * Fetch tags for a specific media item
 */
export declare function useMediaItemTags(mediaId: string | null): import("@tanstack/react-query").UseQueryResult<MediaTag[], Error>;
/**
 * Add a tag to a media item
 */
export declare function useAddMediaTag(): import("@tanstack/react-query").UseMutationResult<any, Error, {
    mediaId: string;
    tagId: string;
}, unknown>;
/**
 * Remove a tag from a media item
 */
/**
 * Create a new media tag
 */
export declare function useCreateMediaTag(): import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
/**
 * Remove a tag from a media item
 */
export declare function useRemoveMediaTag(): import("@tanstack/react-query").UseMutationResult<void, Error, {
    mediaId: string;
    tagId: string;
}, unknown>;
//# sourceMappingURL=useMedia.d.ts.map