import { PayForPressConfig, UserResponse, UserUpdate, SearchParams, ArticleResponse, ArticlesResponse, ArticleFilters, AppearanceSchema, TargetingSchema, SettingsResponse, OrganizationDetails, PaymentResponse, PaymentCreateParams, PaymentSearchParams, PaymentsResponse, Article } from './types';
import { PayForPressClient } from './client';
export declare class PayForPress extends PayForPressClient {
    constructor(config: PayForPressConfig);
    getUser(params: {
        email?: string;
        id?: string;
    }): Promise<UserResponse>;
    createUser(user: UserUpdate): Promise<UserResponse>;
    updateUser(id: string, user: UserUpdate): Promise<UserResponse>;
    deleteUser(id: string): Promise<{
        success: boolean;
        message: string;
    }>;
    searchUsers(params: SearchParams): Promise<{
        success: boolean;
        users: any[];
        total: number;
    }>;
    getArticle(params: {
        id?: string;
        url?: string;
    } | ArticleFilters): Promise<ArticleResponse | ArticlesResponse>;
    createArticle(url: string): Promise<ArticleResponse>;
    updateArticle(id: string, article: Partial<Article>): Promise<ArticleResponse>;
    deleteArticle(id: string): Promise<{
        success: boolean;
    }>;
    getAppearance(): Promise<{
        success: boolean;
        appearance: AppearanceSchema;
    }>;
    updateAppearance(appearance: AppearanceSchema): Promise<{
        success: boolean;
        appearance: AppearanceSchema;
    }>;
    getTargeting(): Promise<{
        targeting: TargetingSchema;
    }>;
    updateTargeting(targeting: TargetingSchema): Promise<{
        message: string;
        targeting: TargetingSchema;
    }>;
    getSettings(): Promise<SettingsResponse>;
    updateSettings(settings: OrganizationDetails): Promise<SettingsResponse>;
    createPayment(params: PaymentCreateParams): Promise<PaymentResponse>;
    getPayment(id: string): Promise<PaymentResponse>;
    searchPayments(params: PaymentSearchParams): Promise<PaymentsResponse>;
    getAnalytics(params: {
        type: 'get' | 'search';
        startDate?: string;
        endDate?: string;
    }): Promise<{
        success: boolean;
        data: any;
    }>;
}
export * from './types';
