import { HttpClient } from '../../utils/http.utils';
import { AutomationWebResponse } from '../../types/common.types';
import { GetStickersRequest, GetStickersResponse, GetStickersDetailRequest, GetStickersDetailResponse, ParseLinkRequest, ParseLinkResponse } from '../../types/dto/search.types';
/**
 * Zalo Personal Search Service Class
 * 100% khớp với automation-web ZaloSearchController
 */
export declare class SearchService {
    private httpClient;
    constructor(httpClient: HttpClient);
    /**
     * Tìm sticker theo từ khóa
     * POST /zalo-personal/search/get-stickers
     *
     * @param request - Search stickers request
     * @returns Promise<AutomationWebResponse<GetStickersResponse>>
     *
     * @example
     * ```typescript
     * const result = await searchService.getStickers({
     *   sessionId: "session-123",
     *   keyword: "hello"
     * });
     *
     * if (result.success) {
     *   console.log(`Found ${result.data.result.length} stickers`);
     *   console.log('Sticker IDs:', result.data.result);
     * }
     * ```
     */
    getStickers(request: GetStickersRequest): Promise<AutomationWebResponse<GetStickersResponse>>;
    /**
     * Lấy chi tiết sticker theo IDs
     * POST /zalo-personal/search/get-stickers-detail
     *
     * @param request - Get stickers detail request
     * @returns Promise<AutomationWebResponse<GetStickersDetailResponse>>
     *
     * @example
     * ```typescript
     * const result = await searchService.getStickersDetail({
     *   sessionId: "session-123",
     *   stickerIds: [123, 456, 789]
     * });
     *
     * if (result.success) {
     *   result.data.result.forEach(sticker => {
     *     console.log(`Sticker ${sticker.id}: ${sticker.name}`);
     *     console.log(`Image: ${sticker.imageUrl}`);
     *   });
     * }
     * ```
     */
    getStickersDetail(request: GetStickersDetailRequest): Promise<AutomationWebResponse<GetStickersDetailResponse>>;
    /**
     * Parse thông tin metadata từ URL
     * POST /zalo-personal/search/parse-link
     *
     * @param request - Parse link request
     * @returns Promise<AutomationWebResponse<ParseLinkResponse>>
     *
     * @example
     * ```typescript
     * const result = await searchService.parseLink({
     *   sessionId: "session-123",
     *   url: "https://example.com/article"
     * });
     *
     * if (result.success) {
     *   const metadata = result.data.result;
     *   console.log('Title:', metadata.title);
     *   console.log('Description:', metadata.description);
     *   console.log('Image:', metadata.image);
     *   console.log('Site:', metadata.siteName);
     * }
     * ```
     */
    parseLink(request: ParseLinkRequest): Promise<AutomationWebResponse<ParseLinkResponse>>;
    /**
     * Tìm stickers và lấy chi tiết trong một lần gọi
     * Convenience method kết hợp getStickers + getStickersDetail
     *
     * @param sessionId - Session ID
     * @param keyword - Search keyword
     * @returns Promise với sticker details
     *
     * @example
     * ```typescript
     * const stickers = await searchService.searchStickersWithDetails(
     *   "session-123",
     *   "hello"
     * );
     *
     * stickers.forEach(sticker => {
     *   console.log(`${sticker.name}: ${sticker.imageUrl}`);
     * });
     * ```
     */
    searchStickersWithDetails(sessionId: string, keyword: string): Promise<GetStickersDetailResponse['result']>;
    /**
     * Batch parse multiple links
     * Parse nhiều links cùng lúc
     *
     * @param sessionId - Session ID
     * @param urls - Array of URLs to parse
     * @returns Promise với array of parsed metadata
     *
     * @example
     * ```typescript
     * const results = await searchService.parseMultipleLinks(
     *   "session-123",
     *   ["https://example1.com", "https://example2.com"]
     * );
     *
     * results.forEach((metadata, index) => {
     *   if (metadata) {
     *     console.log(`Link ${index + 1}: ${metadata.title}`);
     *   }
     * });
     * ```
     */
    parseMultipleLinks(sessionId: string, urls: string[]): Promise<(ParseLinkResponse['result'] | null)[]>;
}
//# sourceMappingURL=search.service.d.ts.map