import { Language, FieldType } from '../request-args';
/**
 * Categories for fields.
 */
export declare enum Category {
    NewFields = "New Fields",
    Analysis = "Analysis",
    Corporate = "Corporate",
    Actions = "Actions",
    CustomFields = "Custom Fields",
    Descriptive = "Descriptive",
    Earnings = "Earnings",
    Estimates = "Estimates",
    Fundamentals = "Fundamentals",
    MarketActivity = "MarketActivity",
    Metadata = "Metadata",
    Ratings = "Ratings",
    Trading = "Trading",
    Systems = "Systems"
}
/**
 * Results filtered by fields available for this yellow key (security type).
 */
export declare enum ProductType {
    All = "All",
    Govt = "Govt",
    Corp = "Corp",
    Mtge = "Mtge",
    MMkt = "M-Mkt",
    Muni = "Muni",
    Pfd = "Pfd",
    Equity = "Equity",
    Cmdty = "Cmdty",
    Index = "Index",
    Curncy = "Curncy"
}
/**
 * Bloomberg Professional Service requirements object.
 */
export declare enum BpsRequirement {
    /**
     * No requirement enforced.
     */
    All = "All",
    /**
     * Fields for which a Bloomberg Professional Service subscription is required.
     */
    BPS = "BPS",
    /**
     * Fields for which a Bloomberg Professional Service subscription is not required.
     */
    NoBPS = "NoBPS"
}
/**
 * Include/exclude filters for the search results to fine tune the result.
 */
export interface IncludeExcludeOption {
    category?: Category;
    productType?: ProductType;
    fieldType?: FieldType;
    bpsRequirement?: BpsRequirement;
}
/**
 * Arguments object for a `FieldSearchRequest`.
 */
export interface FieldSearchRequestArguments {
    /**
     * The string argument to search through mnemonics, descriptions and definitions. It is also able to intelligently expand words (e.g., "mkt" -> "market").
     */
    searchSpec: string;
    /**
     * Returns a value for the element that describes the behavior of the field requested.
     */
    properties?: string;
    /**
     * The language in which the descriptions are given.
     * @default ENGLISH
     */
    language?: Language;
    /**
     * Return results which match the specified filters.
     */
    include?: IncludeExcludeOption;
    /**
     * Do not return results which match the specified filters.
     */
    exclude?: IncludeExcludeOption;
    /**
     * Returns a description about the field as seen on `FLDS <GO>`.
     * @default false
     */
    returnFieldDocumentation?: boolean;
}
