/*
 * Copyright (c) Microsoft Corporation.
 * Licensed under the MIT License.
 *
 * Code generated by Microsoft (R) AutoRest Code Generator.
 * Changes may cause incorrect behavior and will be lost if the code is regenerated.
 */

import {
  SymbolsGetStatusOptionalParams,
  SymbolsGetStatusResponse,
  SymbolsGetLocationOptionalParams,
  SymbolsGetLocationResponse,
  SymbolsIgnoreOptionalParams,
  SymbolsIgnoreResponse,
  SymbolsGetOptionalParams,
  SymbolsGetResponse,
  SymbolsListOptionalParams,
  SymbolsListResponse
} from "../models";

/** Interface representing a Symbols. */
export interface Symbols {
  /**
   * Returns a particular symbol by id (uuid) for the provided application
   * @param symbolId The ID of the symbol (uuid of the symbol)
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  getStatus(
    symbolId: string,
    ownerName: string,
    appName: string,
    options?: SymbolsGetStatusOptionalParams
  ): Promise<SymbolsGetStatusResponse>;
  /**
   * Gets the URL to download the symbol
   * @param symbolId The ID of the symbol (uuid of the symbol)
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  getLocation(
    symbolId: string,
    ownerName: string,
    appName: string,
    options?: SymbolsGetLocationOptionalParams
  ): Promise<SymbolsGetLocationResponse>;
  /**
   * Marks a symbol by id (uuid) as ignored
   * @param symbolId The ID of the symbol (uuid of the symbol)
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  ignore(
    symbolId: string,
    ownerName: string,
    appName: string,
    options?: SymbolsIgnoreOptionalParams
  ): Promise<SymbolsIgnoreResponse>;
  /**
   * Returns a particular symbol by id (uuid) for the provided application
   * @param symbolId The ID of the symbol (uuid of the symbol)
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  get(
    symbolId: string,
    ownerName: string,
    appName: string,
    options?: SymbolsGetOptionalParams
  ): Promise<SymbolsGetResponse>;
  /**
   * Returns the list of all symbols for the provided application
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  list(
    ownerName: string,
    appName: string,
    options?: SymbolsListOptionalParams
  ): Promise<SymbolsListResponse>;
}
