@@ -9,6 +9,7 @@ from _typeshed import (
99ConvertibleToFloat ,
1010ConvertibleToInt ,
1111FileDescriptorOrPath ,
12+ MaybeNone ,
1213OpenBinaryMode ,
1314OpenBinaryModeReading ,
1415OpenBinaryModeUpdating ,
@@ -94,6 +95,9 @@ _SupportsAnextT = TypeVar("_SupportsAnextT", bound=SupportsAnext[Any], covariant
9495_AwaitableT = TypeVar ("_AwaitableT" ,bound = Awaitable [Any ])
9596_AwaitableT_co = TypeVar ("_AwaitableT_co" ,bound = Awaitable [Any ],covariant = True )
9697_P = ParamSpec ("_P" )
98+ _StartT = TypeVar ("_StartT" ,covariant = True ,default = Any )
99+ _StopT = TypeVar ("_StopT" ,covariant = True ,default = Any )
100+ _StepT = TypeVar ("_StepT" ,covariant = True ,default = Any )
97101
98102class object :
99103__doc__ :str | None
@@ -936,17 +940,25 @@ class bool(int):
936940def __invert__ (self )-> int : ...
937941
938942@final
939- class slice :
943+ class slice ( Generic [ _StartT , _StopT , _StepT ]) :
940944@property
941- def start (self )-> Any : ...
945+ def start (self )-> _StartT : ...
942946@property
943- def step (self )-> Any : ...
947+ def step (self )-> _StepT : ...
944948@property
945- def stop (self )-> Any : ...
949+ def stop (self )-> _StopT : ...
946950@overload
947- def __new__ (cls ,stop :Any , / )-> Self : ...
951+ def __new__ (cls ,stop :int | None )-> slice [ int | MaybeNone , int | MaybeNone , int | MaybeNone ] : ...
948952@overload
949- def __new__ (cls ,start :Any ,stop :Any ,step :Any = ...,/ )-> Self : ...
953+ def __new__ (
954+ cls ,start :int | None ,stop :int | None ,step :int | None = None
955+ )-> slice [int | MaybeNone ,int | MaybeNone ,int | MaybeNone ]: ...
956+ @overload
957+ def __new__ (cls ,stop :_T2 ,/ )-> slice [Any ,_T2 ,Any ]: ...
958+ @overload
959+ def __new__ (cls ,start :_T1 ,stop :_T2 ,/ )-> slice [_T1 ,_T2 ,Any ]: ...
960+ @overload
961+ def __new__ (cls ,start :_T1 ,stop :_T2 ,step :_T3 ,/ )-> slice [_T1 ,_T2 ,_T3 ]: ...
950962def __eq__ (self ,value :object ,/ )-> bool : ...
951963if sys .version_info >= (3 ,12 ):
952964def __hash__ (self )-> int : ...