/**
 * Options for the usePatternUsages hook
 */
export interface UsePatternUsagesOptions {
    /** Filter by entity type (e.g., 'pages', 'posts') */
    entityType?: string;
    /** Number of results per page (default: 50) */
    limit?: number;
    /** Current page number (default: 1) */
    page?: number;
    /** Whether the query is enabled (default: true) */
    enabled?: boolean;
    /** Stale time in ms (default: 5 minutes) */
    staleTime?: number;
}
/**
 * Single usage record with entity info
 */
export interface PatternUsage {
    id: string;
    patternId: string;
    entityType: string;
    entityId: string;
    teamId: string;
    createdAt: string;
    entityTitle?: string;
    entityName?: string;
    entityFirstName?: string;
    entityLastName?: string;
    entityEmail?: string;
    entitySlug?: string;
    entityStatus?: string;
    entityUpdatedAt?: string;
}
/**
 * Usage count by entity type
 */
export interface PatternUsageCount {
    entityType: string;
    count: number;
}
/**
 * Result of the usePatternUsages query
 */
export interface PatternUsagesResult {
    usages: PatternUsage[];
    counts: PatternUsageCount[];
    total: number;
    page: number;
    totalPages: number;
}
/**
 * React Query hook to fetch pattern usages
 *
 * @param patternId - The ID of the pattern to get usages for
 * @param options - Query options (entityType filter, pagination, etc.)
 * @returns Query result with usages, counts, and pagination info
 *
 * @example
 * ```tsx
 * const { usages, counts, total, isLoading, error } = usePatternUsages(patternId, {
 *   entityType: 'pages',
 *   limit: 20,
 *   page: 1,
 * })
 * ```
 */
export declare function usePatternUsages(patternId: string, options?: UsePatternUsagesOptions): {
    usages: PatternUsage[];
    counts: PatternUsageCount[];
    total: number;
    page: number;
    totalPages: number;
    data: PatternUsagesResult;
    error: Error;
    isError: true;
    isPending: false;
    isLoading: false;
    isLoadingError: false;
    isRefetchError: true;
    isSuccess: false;
    isPlaceholderData: false;
    status: "error";
    dataUpdatedAt: number;
    errorUpdatedAt: number;
    failureCount: number;
    failureReason: Error;
    errorUpdateCount: number;
    isFetched: boolean;
    isFetchedAfterMount: boolean;
    isFetching: boolean;
    isInitialLoading: boolean;
    isPaused: boolean;
    isRefetching: boolean;
    isStale: boolean;
    isEnabled: boolean;
    refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<PatternUsagesResult, Error>>;
    fetchStatus: import("@tanstack/react-query").FetchStatus;
    promise: Promise<PatternUsagesResult>;
} | {
    usages: PatternUsage[];
    counts: PatternUsageCount[];
    total: number;
    page: number;
    totalPages: number;
    data: PatternUsagesResult;
    error: null;
    isError: false;
    isPending: false;
    isLoading: false;
    isLoadingError: false;
    isRefetchError: false;
    isSuccess: true;
    isPlaceholderData: false;
    status: "success";
    dataUpdatedAt: number;
    errorUpdatedAt: number;
    failureCount: number;
    failureReason: Error;
    errorUpdateCount: number;
    isFetched: boolean;
    isFetchedAfterMount: boolean;
    isFetching: boolean;
    isInitialLoading: boolean;
    isPaused: boolean;
    isRefetching: boolean;
    isStale: boolean;
    isEnabled: boolean;
    refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<PatternUsagesResult, Error>>;
    fetchStatus: import("@tanstack/react-query").FetchStatus;
    promise: Promise<PatternUsagesResult>;
} | {
    usages: PatternUsage[];
    counts: PatternUsageCount[];
    total: number;
    page: number;
    totalPages: number;
    data: undefined;
    error: Error;
    isError: true;
    isPending: false;
    isLoading: false;
    isLoadingError: true;
    isRefetchError: false;
    isSuccess: false;
    isPlaceholderData: false;
    status: "error";
    dataUpdatedAt: number;
    errorUpdatedAt: number;
    failureCount: number;
    failureReason: Error;
    errorUpdateCount: number;
    isFetched: boolean;
    isFetchedAfterMount: boolean;
    isFetching: boolean;
    isInitialLoading: boolean;
    isPaused: boolean;
    isRefetching: boolean;
    isStale: boolean;
    isEnabled: boolean;
    refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<PatternUsagesResult, Error>>;
    fetchStatus: import("@tanstack/react-query").FetchStatus;
    promise: Promise<PatternUsagesResult>;
} | {
    usages: PatternUsage[];
    counts: PatternUsageCount[];
    total: number;
    page: number;
    totalPages: number;
    data: undefined;
    error: null;
    isError: false;
    isPending: true;
    isLoading: true;
    isLoadingError: false;
    isRefetchError: false;
    isSuccess: false;
    isPlaceholderData: false;
    status: "pending";
    dataUpdatedAt: number;
    errorUpdatedAt: number;
    failureCount: number;
    failureReason: Error;
    errorUpdateCount: number;
    isFetched: boolean;
    isFetchedAfterMount: boolean;
    isFetching: boolean;
    isInitialLoading: boolean;
    isPaused: boolean;
    isRefetching: boolean;
    isStale: boolean;
    isEnabled: boolean;
    refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<PatternUsagesResult, Error>>;
    fetchStatus: import("@tanstack/react-query").FetchStatus;
    promise: Promise<PatternUsagesResult>;
} | {
    usages: PatternUsage[];
    counts: PatternUsageCount[];
    total: number;
    page: number;
    totalPages: number;
    data: undefined;
    error: null;
    isError: false;
    isPending: true;
    isLoadingError: false;
    isRefetchError: false;
    isSuccess: false;
    isPlaceholderData: false;
    status: "pending";
    dataUpdatedAt: number;
    errorUpdatedAt: number;
    failureCount: number;
    failureReason: Error;
    errorUpdateCount: number;
    isFetched: boolean;
    isFetchedAfterMount: boolean;
    isFetching: boolean;
    isLoading: boolean;
    isInitialLoading: boolean;
    isPaused: boolean;
    isRefetching: boolean;
    isStale: boolean;
    isEnabled: boolean;
    refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<PatternUsagesResult, Error>>;
    fetchStatus: import("@tanstack/react-query").FetchStatus;
    promise: Promise<PatternUsagesResult>;
} | {
    usages: PatternUsage[];
    counts: PatternUsageCount[];
    total: number;
    page: number;
    totalPages: number;
    data: PatternUsagesResult;
    isError: false;
    error: null;
    isPending: false;
    isLoading: false;
    isLoadingError: false;
    isRefetchError: false;
    isSuccess: true;
    isPlaceholderData: true;
    status: "success";
    dataUpdatedAt: number;
    errorUpdatedAt: number;
    failureCount: number;
    failureReason: Error;
    errorUpdateCount: number;
    isFetched: boolean;
    isFetchedAfterMount: boolean;
    isFetching: boolean;
    isInitialLoading: boolean;
    isPaused: boolean;
    isRefetching: boolean;
    isStale: boolean;
    isEnabled: boolean;
    refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<PatternUsagesResult, Error>>;
    fetchStatus: import("@tanstack/react-query").FetchStatus;
    promise: Promise<PatternUsagesResult>;
};
/**
 * Hook to get just the usage count for a pattern
 * Useful for displaying usage count in lists without full usage details
 *
 * @param patternId - The ID of the pattern
 * @param options - Query options
 * @returns Query result with total usage count
 */
export declare function usePatternUsageCount(patternId: string, options?: {
    enabled?: boolean;
    staleTime?: number;
}): import("@tanstack/react-query").UseQueryResult<number, Error>;
//# sourceMappingURL=usePatternUsages.d.ts.map