import { CustomerNote, CreateCustomerNoteRequest, UpdateCustomerNoteRequest, CustomerNoteListParams, CustomerCommunicationHistory, CustomerCommunicationStats, CreateCommunicationRequest } from '../types/customer-note';
import { BaseResource } from './base';
export declare class CustomerNoteResource extends BaseResource {
    /**
     * Get list of customer notes
     */
    list(customerId: string, params?: CustomerNoteListParams): Promise<{
        data: CustomerNote[];
    }>;
    /**
     * Get customer note by ID
     */
    getById(customerId: string, noteId: string): Promise<CustomerNote>;
    /**
     * Create new customer note
     */
    create(customerId: string, data: CreateCustomerNoteRequest): Promise<CustomerNote>;
    /**
     * Update customer note
     */
    update(customerId: string, noteId: string, data: UpdateCustomerNoteRequest): Promise<CustomerNote>;
    /**
     * Delete customer note
     */
    delete(customerId: string, noteId: string): Promise<void>;
    /**
     * Get communication history
     */
    getCommunicationHistory(customerId: string, params?: {
        page_size?: number;
        page_number?: number;
        type?: string;
        direction?: 'inbound' | 'outbound';
        status?: string;
        channel?: string;
        from_date?: string;
        to_date?: string;
    }): Promise<{
        data: CustomerCommunicationHistory[];
    }>;
    /**
     * Create communication record
     */
    createCommunication(customerId: string, data: CreateCommunicationRequest): Promise<CustomerCommunicationHistory>;
    /**
     * Get communication statistics
     */
    getCommunicationStats(customerId: string, params?: {
        from_date?: string;
        to_date?: string;
        type?: string;
    }): Promise<CustomerCommunicationStats>;
    /**
     * Get customer notes by tag
     */
    getByTag(tag: string, params?: Omit<CustomerNoteListParams, 'tags'>): Promise<{
        data: CustomerNote[];
    }>;
    /**
     * Get notes requiring follow-up
     */
    getRequiringFollowUp(params?: {
        page_size?: number;
        page_number?: number;
        assigned_to?: string;
        from_date?: string;
        to_date?: string;
    }): Promise<{
        data: CustomerNote[];
        total: number;
    }>;
    /**
     * Mark note as followed up
     */
    markAsFollowedUp(customerId: string, noteId: string, comment?: string): Promise<CustomerNote>;
    /**
     * Get notes mentioning user
     */
    getMentioningUser(userId: string, params?: Omit<CustomerNoteListParams, 'mentioned_users'>): Promise<{
        data: CustomerNote[];
    }>;
}
