import { ShareResponse, SharesResponse } from "./types";
import { Base, BinaryBoolean, ExtendedPagination, Success, UID } from "../base";
export declare class Shares extends Base {
    /**
     * This searches the shares and returns... shares
     * @remarks MINIMUM_API_VERSION=420000
     * @param [params.filter] UID to find
     * @param [params.exact] 0, 1 boolean to match the exact filter string
     * @param [params.offset]
     * @param [params.limit]
     * @param [params.cond]
     * @param [params.sort]
     * @see {@link https://ampache.org/api/api-json-methods#shares}
     */
    shares(params?: {
        filter?: string;
        exact?: BinaryBoolean;
    } & ExtendedPagination): Promise<SharesResponse>;
    /**
     * Return a share from UID
     * @remarks MINIMUM_API_VERSION=420000
     * @param params.filter UID to find
     * @see {@link https://ampache.org/api/api-json-methods#share}
     */
    share(params: {
        filter: UID;
    }): Promise<ShareResponse>;
    /**
     * Create a public url that can be used by anyone to stream media.
     * @remarks MINIMUM_API_VERSION=420000
     * @param params.filter UID of object you are sharing
     * @param params.type ('song', 'album', 'artist', 'playlist', 'podcast', 'podcast_episode', 'video')
     * @param [params.description] description (will be filled for you if empty)
     * @param [params.expires] days to keep active
     * @see {@link https://ampache.org/api/api-json-methods#share_create}
     */
    shareCreate(params: {
        filter: UID;
        type: "song" | "album" | "artist" | "playlist" | "podcast" | "podcast_episode" | "video";
        description?: string;
        expires?: number;
    }): Promise<ShareResponse>;
    /**
     * Update the description and/or expiration date for an existing share
     * @remarks MINIMUM_API_VERSION=420000
     * @param params.filter UID to find
     * @param [params.stream] 0, 1
     * @param [params.download] 0, 1
     * @param [params.expires] days to keep active
     * @param [params.description] description
     * @see {@link https://ampache.org/api/api-json-methods#share_edit}
     */
    shareEdit(params: {
        filter: UID;
        stream?: BinaryBoolean;
        download?: BinaryBoolean;
        expires?: number;
        description?: string;
    }): Promise<Success>;
    /**
     * Delete an existing share.
     * @remarks MINIMUM_API_VERSION=420000
     * @param params.filter UID of share to delete
     * @see {@link https://ampache.org/api/api-json-methods#share_delete}
     */
    shareDelete(params: {
        filter: UID;
    }): Promise<Success>;
}
