use crate::Presenter;
use crate::font::FontChain;
#[cfg(feature = "tilesets")]
use crate::tileset::TilesetOptions;
pub trait PresenterBuilder: Sized {
type Presenter: Presenter + 'static;
type Error: core::error::Error;
fn new() -> Self;
#[must_use]
fn grid_size(self, cols: u16, rows: u16) -> Self;
#[must_use]
fn scale(self, scale: u16) -> Self;
#[must_use]
fn font(self, fonts: impl Into<FontChain<'static>>) -> Self;
#[cfg(feature = "tilesets")]
#[must_use]
fn tileset(self, opts: TilesetOptions) -> Self;
fn build_presenter(self) -> Result<Self::Presenter, Self::Error>;
}