import * as Options from '../options';
import { Article } from '../interfaces';
import { BaseService } from '../infrastructure';
/**
 * A service for manipulating a blog's articles.
 */
export declare class Articles extends BaseService {
    constructor(shopDomain: string, accessToken: string);
    /**
     * Creates a new article.
     * @param blogId Id of the blog that the article will belong to.
     * @param article The article being created.
     */
    create(blogId: number, article: Partial<Article>): Promise<Article>;
    /**
     * Updates an article with the given id.
     * @param blogId Id of the blog that the article belongs to.
     * @param articleId Id of the article to update.
     * @param article The updated article.
     */
    update(blogId: number, articleId: number, article: Partial<Article>): Promise<Article>;
    /**
     * Gets an article with the given id.
     * @param blogId Id of the blog that the article belongs to.
     * @param articleId Id of the article being retrieved.
     * @param options Options for filtering the result.
     */
    get(blogId: number, articleId: number, options?: Options.ArticleGetOptions): Promise<Article>;
    /**
     * Lists up to 250 articles for the given blog.
     * @param blogId Id of the blog that the articles belong to.
     * @param options Options for filtering the results.
     */
    list(blogId: number, options?: Options.ArticleListOptions): Promise<Article[]>;
    /**
     * Counts the articles on the given blog.
     * @param blogId Id of the blog that the articles belong to.
     * @param options Options for filtering the results.
     */
    count(blogId: number, options?: Options.ArticleCountOptions): Promise<number>;
    /**
     * Deletes the article with the given id.
     * @param blogId Id of the blog that the article belongs to.
     * @param articleId Id of the article to delete.
     */
    delete(blogId: number, articleId: number): Promise<undefined>;
    /**
     * Gets a list of all article authors.
     */
    listAuthors(options?: Options.ArticleAuthorListOptions): Promise<string[]>;
    /**
     * Gets a list of all article tags.
     * @param options Options for filtering the results.
     */
    listTags(options?: Options.ArticleTagListOptions): Promise<string[]>;
    /**
     * Gets a list of all article tags for the given blog.
     * @param blogId Id of the blog that the tags belong to.
     * @param options Options for filtering the results.
     */
    listTagsForBlog(blogId: number, options?: Options.ArticleTagListOptions): Promise<string[]>;
}
export default Articles;
