import type { CSSResultOrNative } from 'lit'
import { customElement } from 'lit/decorators.js'
import Element from './internals/ApiModelingRateLimiting.js'
import styles from './internals/styles/RateLimiting.styles.js'
import typography from '../styles/m3/typography.module.js'

import '../md/button/ui-button.js'
import '../md/divider/ui-divider.js'
import '../md/icons/ui-icon.js'
import '../md/icon-button/ui-icon-button.js'
import '../md/text-field/ui-outlined-text-field.js'
import '../md/select/ui-select.js'
import '../md/select/ui-option.js'

@customElement('api-modeling-rate-limiting')
export class ApiModelingRateLimitingElement extends Element {
  static override styles: CSSResultOrNative[] = [styles, typography]
}

declare global {
  interface HTMLElementTagNameMap {
    'api-modeling-rate-limiting': ApiModelingRateLimitingElement
  }
}

export type { ApiModelAccessTarget, ApiModelOperationName } from './types.js'
