import { BlogSDK, BlogSDKConfig, ApiResponse, BlogPost, BlogDetails, BlogInfo, UpdateBlogDetailsData, GetPostsOptions, GetPostOptions, CreatePostOptions, UpdatePostOptions, DeletePostOptions, RoleManagementOptions, RoleUpdateResult, DeployOptions, DeployResult } from '../types';
export declare class InkwellBlogSDK implements BlogSDK {
    private processId;
    private aoconnect;
    private logger;
    constructor(config: BlogSDKConfig);
    /**
     * Get the appropriate signer for the wallet
     */
    private getSigner;
    /**
     * Get the result of a message using its message ID
     */
    private getMessageResult;
    /**
     * Deploy a new Inkwell Blog process
     * Works in both browser and Node.js environments using aoconnect
     */
    static deploy(options?: DeployOptions): Promise<DeployResult>;
    /**
     * Get blog information
     */
    getInfo(): Promise<ApiResponse<BlogInfo>>;
    /**
     * Get all posts from the blog
     */
    getAllPosts(options?: GetPostsOptions): Promise<ApiResponse<BlogPost[]>>;
    /**
     * Get a specific post by ID
     */
    getPost(options: GetPostOptions): Promise<ApiResponse<BlogPost>>;
    /**
     * Get user roles for the current wallet
     */
    getUserRoles(walletAddress: string): Promise<ApiResponse<string[]>>;
    /**
     * Create a new post (Editor role required)
     */
    createPost(options: CreatePostOptions): Promise<ApiResponse<BlogPost | string>>;
    /**
     * Update an existing post (Editor role required)
     */
    updatePost(options: UpdatePostOptions): Promise<ApiResponse<BlogPost | string>>;
    /**
     * Delete a post (Editor role required)
     */
    deletePost(options: DeletePostOptions): Promise<ApiResponse<string>>;
    /**
     * Add editors to the blog (Admin role required)
     */
    addEditors(options: RoleManagementOptions): Promise<ApiResponse<RoleUpdateResult[] | string>>;
    /**
     * Remove editors from the blog (Admin role required)
     */
    removeEditors(options: RoleManagementOptions): Promise<ApiResponse<RoleUpdateResult[] | string>>;
    /**
     * Add admins to the blog (Admin role required)
     */
    addAdmins(options: RoleManagementOptions): Promise<ApiResponse<RoleUpdateResult[] | string>>;
    /**
     * Remove admins from the blog (Admin role required)
     */
    removeAdmins(options: RoleManagementOptions): Promise<ApiResponse<RoleUpdateResult[] | string>>;
    /**
     * Get all editors (Admin role required)
     */
    getEditors(): Promise<ApiResponse<string[]>>;
    /**
     * Get all admins (Admin role required)
     */
    getAdmins(): Promise<ApiResponse<string[]>>;
    /**
     * Set blog details (Admin role required)
     */
    setBlogDetails(options: {
        data: UpdateBlogDetailsData;
        wallet?: any;
    }): Promise<ApiResponse<BlogDetails | string>>;
    /**
     * Parse the response
     */
    private parseResponse;
    /**
     * Parse the response from dryrun operations
     */
    private parseDryrunResponse;
    /**
     * Parse the response from message result operations
     */
    private parseMessageResponse;
    /**
     * Parse the Info response from the AO process
     */
    private parseInfoResponse;
}
//# sourceMappingURL=blog-sdk.d.ts.map