// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_CHROME_BROWSER_UI_OMNIBOX_OMNIBOX_CONSTANTS_H_
#define IOS_CHROME_BROWSER_UI_OMNIBOX_OMNIBOX_CONSTANTS_H_

#import <UIKit/UIKit.h>

extern const CGFloat kOmniboxPlaceholderAlpha;

extern NSString* const kOmniboxLeadingImageDefaultAccessibilityIdentifier;

extern NSString* const kOmniboxLeadingImageEmptyTextAccessibilityIdentifier;

extern NSString* const
    kOmniboxLeadingImageSuggestionImageAccessibilityIdentifier;

extern NSString* const kOmniboxAutocompleteLabelAccessibilityIdentifier;

#endif  // IOS_CHROME_BROWSER_UI_OMNIBOX_OMNIBOX_CONSTANTS_H_
