/**
 * Contacts hooks - stub implementation for SDK
 * In production, implement these hooks to fetch from your API
 */
import type { Contact, ContactStatus } from "../types/screen-types";
import type { ListQueryResult, QueryResultNullable } from "./hook-types";
/**
 * Type predicate to check if a status string is a valid ContactStatus.
 * Enables runtime validation with type narrowing.
 */
export declare function isContactStatus(value: string): value is ContactStatus;
/**
 * Parameters for filtering and paginating contacts.
 * Uses readonly properties and proper ContactStatus type for status.
 */
export interface UseContactsParams {
    /** Search query to filter contacts by name, email, or company */
    readonly search?: string;
    /** Filter contacts by status - uses ContactStatus union type for type safety */
    readonly status?: ContactStatus;
    /** Maximum number of contacts to return */
    readonly limit?: number;
}
/**
 * Result type for the useContacts hook.
 * Uses ListQueryResult<Contact> with totalCount and default Error type.
 */
export type UseContactsResult = ListQueryResult<Contact>;
/**
 * Result type for the useContact hook.
 * Uses QueryResultNullable since a specific contact may not exist.
 */
export type UseContactResult = QueryResultNullable<Contact>;
/**
 * Hook to fetch a list of contacts with optional filtering and pagination.
 * This is a stub implementation - override with your own data fetching logic.
 *
 * @param params - Optional parameters for filtering and pagination
 * @returns Object containing contacts data, loading state, error state, and total count
 *
 * @example
 * ```tsx
 * const { data: contacts, isLoading, totalCount } = useContacts({
 *   search: 'john',
 *   status: 'active',
 *   limit: 20
 * });
 * ```
 */
export declare function useContacts(_params?: UseContactsParams): UseContactsResult;
/**
 * Hook to fetch a single contact by ID.
 * This is a stub implementation - override with your own data fetching logic.
 *
 * @param contactId - The unique identifier of the contact to fetch
 * @returns Object containing contact data, loading state, and error state
 *
 * @example
 * ```tsx
 * const { data: contact, isLoading, isError } = useContact('contact-123');
 * ```
 */
export declare function useContact(_contactId: string): UseContactResult;
//# sourceMappingURL=use-contacts.d.ts.map