import { RCSProvider, RCSMessage, MessageResponse, ValidationResult, ProviderConfig } from '../interfaces/index.js';
import { AuthProvider } from '../interfaces/auth.js';
import { AxiosInstance, AxiosRequestConfig } from 'axios';
export declare abstract class BaseProvider implements RCSProvider {
    protected auth: AuthProvider;
    protected config: ProviderConfig;
    protected http: AxiosInstance;
    abstract name: string;
    constructor(auth: AuthProvider, config: ProviderConfig);
    abstract initialize(config: ProviderConfig): Promise<void>;
    abstract sendMessage(message: RCSMessage): Promise<MessageResponse>;
    abstract validatePhoneNumber(phoneNumber: string): Promise<ValidationResult>;
    /**
     * Make an authenticated HTTP request
     */
    protected makeRequest<T = any>(url: string, options?: AxiosRequestConfig): Promise<T>;
}
//# sourceMappingURL=base.d.ts.map